Design Authentication Manager
class AuthenticationManager:
def __init__(self, timeToLive):
self.ttl = timeToLive
self.tokens = {}
def generate(self, tokenId, currentTime) -> None:
expirationTime = currentTime + self.ttl
self.tokens[tokenId] = expirationTime
def renew(self, tokenId, currentTime) -> None:
if tokenId in self.tokens and self.tokens[tokenId] > currentTime:
self.tokens[tokenId] = currentTime + self.ttl
def countUnexpiredTokens(self, currentTime) -> int:
count = 0
for expirationTime in self.tokens.values():
if expirationTime > currentTime:
count = count + 1
return count