class FirebaseTokenAuthentication::AccessToken
Constants
- DECODE_OPTIONS
Attributes
certificate[R]
firebase_token[R]
key_id[R]
Public Class Methods
new(firebase_token, certificate = GoogleX509Certificate.new)
click to toggle source
# File lib/firebase_token_authentication/access_token.rb, line 16 def initialize(firebase_token, certificate = GoogleX509Certificate.new) @firebase_token = firebase_token @certificate = certificate @key_id = decode(key: nil, verify_key: false)[1]["kid"] end
Public Instance Methods
verify()
click to toggle source
# File lib/firebase_token_authentication/access_token.rb, line 22 def verify decode(key: certificate.find(key_id)) end
Private Instance Methods
decode(key: nil, verify_key: true)
click to toggle source
# File lib/firebase_token_authentication/access_token.rb, line 28 def decode(key: nil, verify_key: true) JWT.decode(firebase_token, key&.public_key, verify_key, decode_options) rescue StandardError => e raise FirebaseTokenAuthentication::Error, e.message end
decode_options()
click to toggle source
# File lib/firebase_token_authentication/access_token.rb, line 34 def decode_options config_opts = { aud: FirebaseTokenAuthentication.config.firebase_project_id, iss: "https://securetoken.google.com/#{FirebaseTokenAuthentication.config.firebase_project_id}" } DECODE_OPTIONS.merge(config_opts) end