Class: OpenIDConnect::ResponseObject::IdToken

Inherits:
ConnectObject show all
Includes:
JWTnizable
Defined in:
lib/openid_connect/response_object/id_token.rb

Defined Under Namespace

Classes: InvalidToken

Class Method Summary collapse

Instance Method Summary collapse

Methods included from JWTnizable

#to_jwt

Methods inherited from ConnectObject

all_attributes, #all_attributes, #as_json, #require_at_least_one_attributes, #validate!

Constructor Details

#initialize(attributes = {}) ⇒ IdToken

Returns a new instance of IdToken.



11
12
13
14
15
16
# File 'lib/openid_connect/response_object/id_token.rb', line 11

def initialize(attributes = {})
  super
  (all_attributes - [:exp, :iat, :auth_time]).each do |key|
    self.send "#{key}=", self.send(key).try(:to_s)
  end
end

Class Method Details

.decode(jwt_string, key) ⇒ Object



28
29
30
# File 'lib/openid_connect/response_object/id_token.rb', line 28

def decode(jwt_string, key)
  new JSON::JWT.decode(jwt_string, key)
end

Instance Method Details

#verify!(expected = {}) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/openid_connect/response_object/id_token.rb', line 18

def verify!(expected = {})
  exp.to_i > Time.now.to_i &&
  iss == expected[:issuer] &&
  aud == expected[:client_id] &&
  nonce == expected[:nonce] or
  raise InvalidToken.new('Invalid ID Token')
end