Class: Firebase::Auth::IDTokenKeeper::PublicKeysEndpoint

Inherits:
Object
  • Object
show all
Defined in:
lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb

Constant Summary collapse

PUBLIC_KEYS_URI =
'https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com'

Instance Method Summary collapse

Instance Method Details

#exist_public_key_by?(kid:) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 20

def exist_public_key_by?(kid:)
  public_keys.has_key?(kid)
end

#find_certificate_by(kid:) ⇒ Object



15
16
17
18
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 15

def find_certificate_by(kid:)
  OpenSSL::X509::Certificate.new(public_keys[kid]) if exist_public_key_by?(kid: kid)

end

#find_public_key_by(kid:) ⇒ Object



11
12
13
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 11

def find_public_key_by(kid:)
  public_keys[kid]
end

#public_keysObject



24
25
26
27
28
29
30
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 24

def public_keys
  @public_keys ||= if response_status == 200
                      JSON.parse(response_body)
                    else
                      []
                    end
end

#responseObject



40
41
42
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 40

def response
  @response ||= URI.open(PUBLIC_KEYS_URI)
end

#response_bodyObject



32
33
34
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 32

def response_body
  @response_body ||= response.read
end

#response_statusObject



36
37
38
# File 'lib/firebase/auth/id_token_keeper/public_keys_endpoint.rb', line 36

def response_status
  @response_status ||= response.status[0].to_i
end