class Warden::Cognito::JwkLoader
Public Instance Methods
call(options)
click to toggle source
# File lib/warden/cognito/jwk_loader.rb, line 19 def call(options) return { keys: [jwk.key.export] } if jwk.key.present? cache.delete(jwk_url) if options[:invalidate] cache.fetch(jwk_url, expires_in: 1.hour) do JSON.parse(HTTP.get(jwk_url).body.to_s).deep_symbolize_keys end end
issued?(token)
click to toggle source
# File lib/warden/cognito/jwk_loader.rb, line 13 def issued?(token) ::JWT.decode(token, nil, false).first['iss'] == jwt_issuer rescue StandardError false end
jwt_issuer()
click to toggle source
# File lib/warden/cognito/jwk_loader.rb, line 7 def jwt_issuer return "#{user_pool.identifier}-#{jwk.issuer}" if jwk.issuer.present? "https://cognito-idp.#{user_pool.region}.amazonaws.com/#{user_pool.pool_id}" end
Private Instance Methods
jwk_url()
click to toggle source
# File lib/warden/cognito/jwk_loader.rb, line 31 def jwk_url "#{jwt_issuer}/.well-known/jwks.json" end