Class: Authkeeper::JwtEncoder

Inherits:
Object
  • Object
show all
Defined in:
app/lib/authkeeper/jwt_encoder.rb

Constant Summary collapse

HMAC_SECRET =
Rails.application.secret_key_base

Instance Method Summary collapse

Instance Method Details

#decode(token:, secret: HMAC_SECRET) ⇒ Object



11
12
13
14
15
# File 'app/lib/authkeeper/jwt_encoder.rb', line 11

def decode(token:, secret: HMAC_SECRET)
  JWT.decode(token, secret).first
rescue JWT::DecodeError
  {}
end

#encode(payload:, secret: HMAC_SECRET) ⇒ Object



7
8
9
# File 'app/lib/authkeeper/jwt_encoder.rb', line 7

def encode(payload:, secret: HMAC_SECRET)
  JWT.encode(modify_payload(payload), secret)
end

#modify_payload(payload) ⇒ Object



17
18
19
20
21
22
# File 'app/lib/authkeeper/jwt_encoder.rb', line 17

def modify_payload(payload)
  payload.merge!(
    random: SecureRandom.hex,
    exp: DateTime.now.to_i + token_expiration_seconds
  )
end