class JsonWebToken
Public Class Methods
decode(token, refresh: false)
click to toggle source
# File lib/json_web_token.rb, line 9 def decode(token, refresh: false) secret = extract_secret(token, refresh: refresh) body = JWT.decode(token, secret)[0] HashWithIndifferentAccess.new body rescue nil end
encode(payload, exp:, jti:, secret:)
click to toggle source
# File lib/json_web_token.rb, line 3 def encode(payload, exp:, jti:, secret:) payload[:exp] = exp.to_i payload[:jti] = jti JWT.encode(payload, secret) end
extract_secret(token, refresh: false)
click to toggle source
# File lib/json_web_token.rb, line 17 def extract_secret(token, refresh: false) key = JSON.parse(Base64.decode64 token.split('.')[1])['jti'] $redis.get("token:#{key}").tap do $redis.del("token:#{key}") if refresh end end