Module: ApiGuard::JwtAuth::BlacklistToken

Defined in:
lib/api_guard/jwt_auth/blacklist_token.rb

Overview

Common module for token blacklisting functionality

Instance Method Summary collapse

Instance Method Details

#blacklist_tokenObject

Blacklist the current JWT token from future access



26
27
28
29
30
# File 'lib/api_guard/jwt_auth/blacklist_token.rb', line 26

def 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?Boolean

Returns whether the JWT token is blacklisted or not

Returns:

  • (Boolean)


19
20
21
22
23
# File 'lib/api_guard/jwt_auth/blacklist_token.rb', line 19

def blacklisted?
  return false unless token_blacklisting_enabled?(current_resource)

  blacklisted_tokens_for(current_resource).exists?(token: @token)
end

#blacklisted_token_association(resource) ⇒ Object



5
6
7
# File 'lib/api_guard/jwt_auth/blacklist_token.rb', line 5

def blacklisted_token_association(resource)
  resource.class.blacklisted_token_association
end

#blacklisted_tokens_for(resource) ⇒ Object



13
14
15
16
# File 'lib/api_guard/jwt_auth/blacklist_token.rb', line 13

def blacklisted_tokens_for(resource)
  blacklisted_token_association = blacklisted_token_association(resource)
  resource.send(blacklisted_token_association)
end

#token_blacklisting_enabled?(resource) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/api_guard/jwt_auth/blacklist_token.rb', line 9

def token_blacklisting_enabled?(resource)
  blacklisted_token_association(resource).present?
end