Class: JWT::JWK::KeyFinder

Inherits:
Object
  • Object
show all
Defined in:
lib/jwt/jwk/key_finder.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ KeyFinder

Returns a new instance of KeyFinder.



6
7
8
9
10
# File 'lib/jwt/jwk/key_finder.rb', line 6

def initialize(options)
  jwks_or_loader = options[:jwks]
  @jwks          = jwks_or_loader if jwks_or_loader.is_a?(Hash)
  @jwk_loader    = jwks_or_loader if jwks_or_loader.respond_to?(:call)
end

Instance Method Details

#key_for(kid) ⇒ Object

Raises:



12
13
14
15
16
17
18
19
20
# File 'lib/jwt/jwk/key_finder.rb', line 12

def key_for(kid)
  raise ::JWT::DecodeError, 'No key id (kid) found from token headers' unless kid

  jwk = resolve_key(kid)

  raise ::JWT::DecodeError, "Could not find public key for kid #{kid}" unless jwk

  ::JWT::JWK.import(jwk).keypair
end