class Auth0::Verifier::Jwks

Attributes

url[R]

Public Class Methods

new(url) click to toggle source
# File lib/auth0/verifier/jwks.rb, line 14
def initialize(url)
  @url = url
end

Public Instance Methods

keys() click to toggle source
# File lib/auth0/verifier/jwks.rb, line 18
def keys
  return unless data

  jwks_keys = Array(data['keys'])
  jwks_keys.each_with_object({}) do |key, object|
    next unless key['alg'] == 'RS256'

    object[key['kid']] = key_certificate(key)
  end
end

Private Instance Methods

data() click to toggle source
# File lib/auth0/verifier/jwks.rb, line 36
def data
  @data ||= begin
    result = Net::HTTP.get(URI(url))
    JSON.parse(result)
  end
end
key_certificate(key) click to toggle source
# File lib/auth0/verifier/jwks.rb, line 31
def key_certificate(key)
  decoded = Base64.decode64(key['x5c'][0])
  OpenSSL::X509::Certificate.new(decoded).public_key
end