module ActiveRecord::Jwt::Decoder::ClassMethods

Public Instance Methods

decode_jwt(jwt) click to toggle source
# File lib/activerecord-jwt/decoder.rb, line 11
def decode_jwt(jwt)
  payload, header = JWT.decode(jwt, ActiveRecord::Jwt::Decoder.configuration.key, true, ActiveRecord::Jwt::Decoder.configuration.options)
  payload_valid?(payload)
  { payload: payload, header: header }
rescue JWT::DecodeError => e
  raise ActiveRecord::Jwt::InvalidError.new(e)
end
find_authenticated_jwt(jwt) click to toggle source
# File lib/activerecord-jwt/decoder.rb, line 6
def find_authenticated_jwt(jwt)
  decoded_jwt = decode_jwt(jwt)
  self.find_by(ActiveRecord::Jwt::Decoder.configuration.sub => decoded_jwt[:payload]['sub'])
end

Private Instance Methods

payload_valid?(payload) click to toggle source
# File lib/activerecord-jwt/decoder.rb, line 20
def payload_valid?(payload)
  raise ActiveRecord::Jwt::InvalidError.new if ActiveRecord::Jwt::Decoder.configuration.class && payload['class'] != self.name.to_s
end