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
EXPIRATION_SECONDS =

1.week

604_800

Instance Method Summary collapse

Instance Method Details

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



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

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

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



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

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

#modify_payload(payload) ⇒ Object



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

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