class Devise::Strategies::Auth0Authenticatable

Public Class Methods

config() click to toggle source
# File lib/devise/strategies/auth0_authenticatable.rb, line 9
def self.config
  @config ||= Devise::Auth0::Config.new
end

Public Instance Methods

authenticate!() click to toggle source
# File lib/devise/strategies/auth0_authenticatable.rb, line 13
def authenticate!
  token = env['HTTP_AUTHORIZATION'].to_s.gsub('Bearer ', '')

  begin
    decoded_token, header = JWT.decode(token, self.class.config.secret)
  rescue JWT::DecodeError
    Rails.logger.warn 'Unreadable Auth0 token'
    fail! 'Unreadable Auth0 token'
    return
  end

  if not decoded_token.is_a?(Hash)
    Rails.logger.warn "Unexpected Auth0 token structure: expected Hash, got #{decoded_token.inspect}"
    fail! "Unexpected Auth0 token structure: expected Hash, got #{decoded_token.inspect}"
    return
  end

  if decoded_token['aud'] == self.class.config.client_id
    user = mapping.to.find_or_sync_auth0(decoded_token)
    success! user
    return
  end

  Rails.logger.info "Invalid token"
  fail! 'Invalid token'
end
store?() click to toggle source
# File lib/devise/strategies/auth0_authenticatable.rb, line 40
def store?
  false
end
valid?() click to toggle source
# File lib/devise/strategies/auth0_authenticatable.rb, line 44
def valid?
  env['HTTP_AUTHORIZATION'].present?
end