class Doorkeeper::OpenidConnect::IdToken
Attributes
nonce[R]
Public Class Methods
new(access_token, nonce = nil)
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 8 def initialize(access_token, nonce = nil) @access_token = access_token @nonce = nonce @resource_owner = Doorkeeper::OpenidConnect.configuration.resource_owner_from_access_token.call(access_token) @issued_at = Time.now end
Public Instance Methods
as_json(*_)
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 27 def as_json(*_) claims.reject { |_, value| value.nil? || value == '' } end
as_jws_token()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 31 def as_jws_token JSON::JWT.new(as_json).sign( Doorkeeper::OpenidConnect.signing_key, Doorkeeper::OpenidConnect.signing_algorithm ).to_s end
claims()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 15 def claims { iss: issuer, sub: subject, aud: audience, exp: expiration, iat: issued_at, nonce: nonce, auth_time: auth_time }.merge ClaimsBuilder.generate(@access_token, :id_token) end
Private Instance Methods
audience()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 48 def audience @access_token.application.uid end
auth_time()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 60 def auth_time Doorkeeper::OpenidConnect.configuration.auth_time_from_resource_owner.call(@resource_owner).try(:to_i) end
expiration()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 52 def expiration (@issued_at.utc + Doorkeeper::OpenidConnect.configuration.expiration).to_i end
issued_at()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 56 def issued_at @issued_at.utc.to_i end
issuer()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 40 def issuer Doorkeeper::OpenidConnect.configuration.issuer end
subject()
click to toggle source
# File lib/doorkeeper/openid_connect/id_token.rb, line 44 def subject Doorkeeper::OpenidConnect.configuration.subject.call(@resource_owner, @access_token.application).to_s end