Class: JwtAuthCognito::TokenBlacklistService

Inherits:
Object
  • Object
show all
Defined in:
lib/jwt_auth_cognito/token_blacklist_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(config = JwtAuthCognito.configuration) ⇒ TokenBlacklistService

Returns a new instance of TokenBlacklistService.



5
6
7
8
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 5

def initialize(config = JwtAuthCognito.configuration)
  @config = config
  @redis_service = RedisService.new(config)
end

Instance Method Details

#add_to_blacklist(token, user_id: nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 10

def add_to_blacklist(token, user_id: nil)
  token_id = @redis_service.generate_token_id(token)
  ttl = calculate_ttl(token)
  
  result = @redis_service.save_revoked_token(token_id, ttl)
  
  # Track token for user if provided
  if user_id
    @redis_service.track_user_token(user_id, token_id, ttl)
  end
  
  result
end

#clear_all_blacklisted_tokensObject



33
34
35
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 33

def clear_all_blacklisted_tokens
  @redis_service.clear_revoked_tokens
end

#invalidate_user_tokens(user_id) ⇒ Object



29
30
31
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 29

def invalidate_user_tokens(user_id)
  @redis_service.invalidate_user_tokens(user_id)
end

#is_blacklisted?(token) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 24

def is_blacklisted?(token)
  token_id = @redis_service.generate_token_id(token)
  @redis_service.is_token_revoked?(token_id)
end