class EasyJwtAuth::UserFinder

Attributes

algo[R]
finder_method[R]
secret[R]

Public Class Methods

new() click to toggle source
# File lib/easy_jwt_auth/user_finder.rb, line 3
def initialize
  @algo = Config.algo
  @finder_method = Config.finder_method
  @secret = Config.secret
end

Public Instance Methods

user_from_header(auth_header) click to toggle source
# File lib/easy_jwt_auth/user_finder.rb, line 9
def user_from_header(auth_header)
  raise InvalidAuthHeader unless valid_header?(auth_header)

  decoded_token = JWT.decode(
    token_from_header(auth_header), secret, true, { algorithm: algo }
  )

  data = decoded_token.first
  finder_method.call(data['id'])
end

Private Instance Methods

token_from_header(auth_header) click to toggle source
# File lib/easy_jwt_auth/user_finder.rb, line 24
def token_from_header(auth_header)
  auth_header.split.last
end
valid_header?(auth_header) click to toggle source
# File lib/easy_jwt_auth/user_finder.rb, line 28
def valid_header?(auth_header)
  /Bearer (.+)/.match(auth_header)
end