Class: Auth0RS256JWTVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/auth0_rs256_jwt_verifier.rb,
lib/auth0_rs256_jwt_verifier/jwk.rb,
lib/auth0_rs256_jwt_verifier/results.rb,
lib/auth0_rs256_jwt_verifier/user_id.rb,
lib/auth0_access_tokens_rs256_verifier.rb,
lib/auth0_rs256_jwt_verifier/certs_set.rb,
lib/auth0_rs256_jwt_verifier/jwt_decoder.rb,
lib/auth0_rs256_jwt_verifier/exp_verifier.rb,
lib/auth0_rs256_jwt_verifier/valid_jwk_set.rb,
lib/auth0_rs256_jwt_verifier/jwk_set_downloader.rb,
lib/auth0_rs256_jwt_verifier/jwt_decoder_wrapper.rb

Defined Under Namespace

Classes: CertsSet, ExpVerifier, JWK, ValidJWKSet

Instance Method Summary collapse

Constructor Details

#initialize(issuer:, audience:, jwks_url:, http: HTTP, exp_verifier: ExpVerifier.new) ⇒ Auth0RS256JWTVerifier

Returns a new instance of Auth0RS256JWTVerifier.



16
17
18
19
20
21
22
23
# File 'lib/auth0_rs256_jwt_verifier.rb', line 16

def initialize(issuer:, audience:, jwks_url:, http: HTTP, exp_verifier: ExpVerifier.new)
  @audience        = audience
  @issuer          = issuer
  @jwks_url        = jwks_url
  @jwks_downloader = JWKSetDownloader.new(http)
  @exp_verifier    = exp_verifier
  @certificates    = nil
end

Instance Method Details

#verify(access_token) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/auth0_rs256_jwt_verifier.rb', line 25

def verify(access_token)
  payload = JWTDecoderWrapper.new(
    @audience,
    @issuer,
    certificates,
    exp_verifier: @exp_verifier,
    jwt_decoder: JWTDecoder.new,
  ).decode(access_token)
  Results::ValidAccessToken.new(UserId.new(payload.sub))
rescue JWTDecoderWrapper::Error
  Results::INVALID_ACCESS_TOKEN
end