module ApiGuard::JwtAuth::BlacklistToken

Common module for token blacklisting functionality

Public Class Methods

blacklist_token() click to toggle source

Blacklist the current JWT token from future access

# File lib/api_guard/jwt_auth/blacklist_token.rb, line 28
def self.blacklist_token
  return unless token_blacklisting_enabled?(current_resource)

  blacklisted_tokens_for(current_resource).create(token: @token, expire_at: Time.at(@decoded_token[:exp]).utc)
end
blacklisted?(resource) click to toggle source

Returns whether the JWT token is blacklisted or not

# File lib/api_guard/jwt_auth/blacklist_token.rb, line 21
def self.blacklisted?(resource)
  return false unless token_blacklisting_enabled?(resource)

  blacklisted_tokens_for(resource).exists?(token: @token)
end
blacklisted_token_association(resource) click to toggle source
# File lib/api_guard/jwt_auth/blacklist_token.rb, line 7
def self.blacklisted_token_association(resource)
  resource.class.blacklisted_token_association
end
blacklisted_tokens_for(resource) click to toggle source
# File lib/api_guard/jwt_auth/blacklist_token.rb, line 15
def self.blacklisted_tokens_for(resource)
  blacklisted_token_association = blacklisted_token_association(resource)
  resource.send(blacklisted_token_association)
end
token_blacklisting_enabled?(resource) click to toggle source
# File lib/api_guard/jwt_auth/blacklist_token.rb, line 11
def self.token_blacklisting_enabled?(resource)
  blacklisted_token_association(resource).present?
end