blob: 94f99075fc6d9678848f420e6c41b4ab449c76de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# frozen_string_literal: true
module Services
# The service responsible for JWT generation.
class TokenGenerationService
def initialize(params)
@email = params[:email]
@role = params[:role]
@session_key = params[:session_key]
end
def call(expiration)
JWT.encode(payload.merge({ exp: expiration.to_i }), ENV['HMAC_SECRET_KEY'], 'HS512')
end
private
def payload
{ data: @email, aud: @role, jti: @session_key }
end
end
end
|