Class: OIDCProvider::IdToken

Inherits:
ApplicationRecord show all
Defined in:
app/models/oidc_provider/id_token.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configObject



42
43
44
45
46
47
# File 'app/models/oidc_provider/id_token.rb', line 42

def config
  {
    issuer: OIDCProvider.issuer,
    jwk_set: JSON::JWK::Set.new(public_jwk)
  }
end

.key_pairObject



30
31
32
# File 'app/models/oidc_provider/id_token.rb', line 30

def key_pair
  @key_pair ||= OpenSSL::PKey::RSA.new(File.read(Rails.root.join("lib/oidc_provider_key.pem")), ENV["OIDC_PROVIDER_KEY_PASSPHRASE"])
end

.private_jwkObject



34
35
36
# File 'app/models/oidc_provider/id_token.rb', line 34

def private_jwk
  JSON::JWK.new key_pair
end

.public_jwkObject



38
39
40
# File 'app/models/oidc_provider/id_token.rb', line 38

def public_jwk
  JSON::JWK.new key_pair.public_key
end

Instance Method Details

#set_defaultsObject



6
7
8
# File 'app/models/oidc_provider/id_token.rb', line 6

def set_defaults
  self.expires_at = 1.hour.from_now
end

#to_jwtObject



23
24
25
# File 'app/models/oidc_provider/id_token.rb', line 23

def to_jwt
  to_response_object.to_jwt(self.class.private_jwk)
end

#to_response_objectObject



12
13
14
15
16
17
18
19
20
21
# File 'app/models/oidc_provider/id_token.rb', line 12

def to_response_object
  OpenIDConnect::ResponseObject::IdToken.new(
    iss: OIDCProvider.issuer,
    sub: .send(OIDCProvider.),
    aud: authorization.client_id,
    nonce: nonce,
    exp: expires_at.to_i,
    iat: created_at.to_i
  )
end