Class: Nuabase::NuaTokenGenerator
- Inherits:
-
Object
- Object
- Nuabase::NuaTokenGenerator
- Defined in:
- lib/nuabase/nua_token_generator.rb
Defined Under Namespace
Classes: InvalidSecretKeyError
Constant Summary collapse
- SIGNING_KEY_PREFIX =
"pk_".freeze
- ALGORITHM =
'HS256'.freeze
- EXPIRY_SECONDS =
180
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(signing_key_secret:, user_id:, expiry_seconds: EXPIRY_SECONDS) ⇒ NuaTokenGenerator
constructor
A new instance of NuaTokenGenerator.
Constructor Details
#initialize(signing_key_secret:, user_id:, expiry_seconds: EXPIRY_SECONDS) ⇒ NuaTokenGenerator
Returns a new instance of NuaTokenGenerator.
13 14 15 16 17 |
# File 'lib/nuabase/nua_token_generator.rb', line 13 def initialize(signing_key_secret:, user_id:, expiry_seconds: EXPIRY_SECONDS) @user_id = user_id @expiry_seconds = expiry_seconds parse_signing_key(signing_key_secret) end |
Instance Method Details
#generate ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/nuabase/nua_token_generator.rb', line 19 def generate current_time = Time.now.to_i payload = { iss: @client_id, sub: @user_id, kid: @key_id, jti: SecureRandom.uuid, exp: current_time + @expiry_seconds, iat: current_time, aud: "https://api.nuabase.com" } token = JWT.encode(payload, @secret_b64, ALGORITHM) { access_token: token, expires_in: @expiry_seconds, expires_at: payload[:exp] } end |