5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/standard_id/provider/id_token_service.rb', line 5
def generate(subject_id:, client_id:, nonce: nil, access_token: nil, authorization_code: nil, auth_time: nil, extra_claims: {})
payload = {
sub: subject_id,
aud: client_id,
nonce: nonce,
auth_time: auth_time&.to_i
}.compact
payload[:at_hash] = compute_half_hash(access_token) if access_token.present?
payload[:c_hash] = compute_half_hash(authorization_code) if authorization_code.present?
payload.merge!(.symbolize_keys) if .present?
expires_in = StandardId.config.provider.id_token_lifetime.seconds
StandardId::JwtService.encode(payload, expires_in: expires_in)
end
|