module Sorcery::Controller::Submodules::Jwt::InstanceMethods

Protected Instance Methods

login_and_issue_token(*credentials) click to toggle source
# File lib/sorcery/controller/submodules/jwt.rb, line 23
def login_and_issue_token(*credentials)
  return unless (user = user_class.authenticate(*credentials))

  @current_user = user
  auto_login(@current_user)
  user_class.issue_token(id: @current_user.id, email: @current_user.email)
end
login_from_jwt() click to toggle source
# File lib/sorcery/controller/submodules/jwt.rb, line 13
def login_from_jwt
  user = decoded_token.first.slice("id", "email")

  @current_user = user_class.find_by(user)
  auto_login(@current_user) if @current_user
  @current_user
rescue JWT::DecodeError, JWT::ExpiredSignature
  @current_user = false
end

Private Instance Methods

authorization_header() click to toggle source
# File lib/sorcery/controller/submodules/jwt.rb, line 39
def authorization_header
  @authorization_header ||= request.headers["Authorization"]
end
decoded_token() click to toggle source
# File lib/sorcery/controller/submodules/jwt.rb, line 43
def decoded_token
  user_class.decode_token(token)
end
token() click to toggle source
# File lib/sorcery/controller/submodules/jwt.rb, line 33
def token
  return nil unless authorization_header

  authorization_header.split(" ").last
end