class Firebase::Auth::Token

Attributes

payload[R]
token[R]

Public Class Methods

new(payload: {}, token: nil, verify_options: {}) click to toggle source
# File lib/firebase/auth/token.rb, line 7
def initialize(payload: {}, token: nil, verify_options: {})
  set_public_key
  @token = token
  @payload = FirebaseIdToken::Signature.verify(token)
  # user not found or decode error
  # raise StandardError, 'decode error' if @payload.nil?
end

Public Instance Methods

entity_for(entity_class) click to toggle source
# File lib/firebase/auth/token.rb, line 15
def entity_for(entity_class)
  if entity_class.respond_to? :from_token_payload
    entity_class.from_token_payload @payload
  else
    # FIXME: error handling
    entity_class.find_by!(uid: @payload['sub'])
  end
end
set_public_key() click to toggle source
# File lib/firebase/auth/token.rb, line 24
def set_public_key
  # FIXME: cache
  FirebaseIdToken::Certificates.request! unless 60 <= FirebaseIdToken::Certificates.ttl
  nil
end