Class: OmniAuth::Strategies::JWT

Inherits:
Object
  • Object
show all
Includes:
OmniAuth::Strategy
Defined in:
lib/omniauth/strategies/jwt.rb

Direct Known Subclasses

Jwt

Defined Under Namespace

Classes: ClaimInvalid

Instance Method Summary collapse

Instance Method Details

#callback_phaseObject



35
36
37
38
39
# File 'lib/omniauth/strategies/jwt.rb', line 35

def callback_phase
  super
rescue ClaimInvalid => e
  fail! :claim_invalid, e
end

#decodedObject

Raises:



25
26
27
28
29
30
31
32
33
# File 'lib/omniauth/strategies/jwt.rb', line 25

def decoded
  @decoded ||= ::JWT.decode(request.params['jwt'], options.secret, options.algorithm)
  (options.required_claims || []).each do |field|
    raise ClaimInvalid.new("Missing required '#{field}' claim.") if !@decoded.key?(field.to_s)
  end
  raise ClaimInvalid.new("Missing required 'iat' claim.") if options.valid_within && !@decoded["iat"]
  raise ClaimInvalid.new("'iat' timestamp claim is too skewed from present.") if options.valid_within && (Time.now.to_i - @decoded["iat"]).abs > options.valid_within
  @decoded
end

#request_phaseObject



21
22
23
# File 'lib/omniauth/strategies/jwt.rb', line 21

def request_phase
  redirect options.auth_url
end