class JWTSessions::Token

Constants

DECODE_ERROR

Public Class Methods

decode(token, claims = {}) click to toggle source
# File lib/jwt_sessions/token.rb, line 15
def decode(token, claims = {})
  decode_options = { algorithm: JWTSessions.algorithm }.merge(JWTSessions.jwt_options.to_h).merge(claims)
  JWT.decode(token, JWTSessions.public_key, JWTSessions.validate?, decode_options)
rescue JWT::ExpiredSignature => e
  raise Errors::Expired, e.message
rescue JWT::InvalidIssuerError, JWT::InvalidIatError, JWT::InvalidAudError, JWT::InvalidSubError, JWT::InvalidJtiError => e
  raise Errors::ClaimsVerification, e.message
rescue JWT::DecodeError => e
  raise Errors::Unauthorized, e.message
rescue StandardError
  raise Errors::Unauthorized, DECODE_ERROR
end
decode!(token) click to toggle source
# File lib/jwt_sessions/token.rb, line 28
def decode!(token)
  decode_options = { algorithm: JWTSessions.algorithm }
  JWT.decode(token, JWTSessions.public_key, false, decode_options)
rescue StandardError
  raise Errors::Unauthorized, DECODE_ERROR
end
encode(payload) click to toggle source
# File lib/jwt_sessions/token.rb, line 10
def encode(payload)
  exp_payload = meta.merge(payload)
  JWT.encode(exp_payload, JWTSessions.private_key, JWTSessions.algorithm)
end
meta() click to toggle source
# File lib/jwt_sessions/token.rb, line 35
def meta
  { "exp" => JWTSessions.access_expiration }
end