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



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
# 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
  @redis_service.track_user_token(user_id, token_id, ttl) if user_id

  result
end

#clear_all_blacklisted_tokensObject



31
32
33
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 31

def clear_all_blacklisted_tokens
  @redis_service.clear_revoked_tokens
end

#invalidate_user_tokens(user_id) ⇒ Object



27
28
29
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 27

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

#is_blacklisted?(token) ⇒ Boolean



22
23
24
25
# File 'lib/jwt_auth_cognito/token_blacklist_service.rb', line 22

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