Class: FirebaseIdToken::Certificates::ActiveSupport

Inherits:
Certificates
  • Object
show all
Defined in:
lib/firebase_id_token/certificates/active_support.rb

Overview

ActiveSupport specific methods for Certificates class

Constant Summary collapse

RACE_CONDITION_TIME =
5.seconds

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source: :id_token) ⇒ ActiveSupport

Returns a new instance of ActiveSupport.



7
8
9
10
11
# File 'lib/firebase_id_token/certificates/active_support.rb', line 7

def initialize(source: :id_token)
  @source = source
  @cache_store = ::FirebaseIdToken.configuration.cache_store
  @local_certs = read_certificates
end

Instance Attribute Details

#cache_storeObject (readonly)

Returns the value of attribute cache_store.



4
5
6
# File 'lib/firebase_id_token/certificates/active_support.rb', line 4

def cache_store
  @cache_store
end

Class Method Details

.ttl(source: :id_token) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/firebase_id_token/certificates/active_support.rb', line 13

def self.ttl(source: :id_token)
  current_time = Time.now.to_i
  entry = new(source: source).cache_store.read CACHE_KEYS.fetch(source)
  if entry
    expires_at = JSON.parse(entry)["expires_at"]
    return expires_at - current_time < 0 ? 0 : expires_at - current_time
  end
  return 0
end