Method: Auth0::Mixins::Validation::Algorithm::RS256#jwks

Defined in:
lib/auth0/mixins/validation.rb

#jwks(force: false) ⇒ hash

Fetches the JWK set from the in-memory cache or from the url.

Returns:

  • (hash)

    A JWK set.


323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
# File 'lib/auth0/mixins/validation.rb', line 323

def jwks(force: false)
  result = fetch_jwks if force

  if result
    @@cache.put(@jwks_url, result, lifetime: @lifetime)
    return result
  end

  previous_value = @@cache.last(@jwks_url)

  @@cache.get(@jwks_url, lifetime: @lifetime, dirty: true) do
    new_value = fetch_jwks

    raise Auth0::InvalidIdToken, 'Could not fetch the JWK set' unless new_value || previous_value

    new_value || previous_value
  end
end