class Mobius::Client::Auth::Jwt

Generates JWT token based on valid token transaction signed by both parties and decodes JWT token into hash.

Constants

ALG

Used JWT algorithm

Public Instance Methods

decode!(jwt) click to toggle source

Returns decoded JWT token. @param jwt [String] JWT token @return [Hash] Decoded token params

# File lib/mobius/client/auth/jwt.rb, line 27
def decode!(jwt)
  OpenStruct.new(JWT.decode(jwt, secret, true, algorithm: ALG).first)
rescue JWT::ExpiredSignature => _
  raise TokenExpired
end
encode(token, options = {}) click to toggle source

Returns JWT token. @param token [Mobius::Client::Auth::Token] Valid auth token @return [String] JWT token

# File lib/mobius/client/auth/jwt.rb, line 13
def encode(token, options = {})
  payload = {
    jti: token.hash(:hex),
    sub: token.address,
    iat: token.time_bounds.min_time,
    exp: token.time_bounds.max_time
  }.merge(options)

  JWT.encode(payload, secret, ALG)
end