Improve the inventory page
This commit is contained in:
@@ -154,21 +154,57 @@ class TokenRepository(AuthBaseRepository):
|
||||
"""Check if a token is valid (exists, not revoked, not expired)"""
|
||||
try:
|
||||
refresh_token = await self.get_token_by_value(token)
|
||||
|
||||
|
||||
if not refresh_token:
|
||||
return False
|
||||
|
||||
|
||||
if refresh_token.is_revoked:
|
||||
return False
|
||||
|
||||
|
||||
if refresh_token.expires_at < datetime.now(timezone.utc):
|
||||
return False
|
||||
|
||||
|
||||
return True
|
||||
|
||||
|
||||
except Exception as e:
|
||||
logger.error("Failed to validate token", error=str(e))
|
||||
return False
|
||||
|
||||
async def validate_refresh_token(self, token: str, user_id: str) -> bool:
|
||||
"""Validate refresh token for a specific user"""
|
||||
try:
|
||||
refresh_token = await self.get_token_by_value(token)
|
||||
|
||||
if not refresh_token:
|
||||
logger.debug("Refresh token not found", token_prefix=token[:10] + "...")
|
||||
return False
|
||||
|
||||
# Convert both to strings for comparison to handle UUID vs string mismatch
|
||||
token_user_id = str(refresh_token.user_id)
|
||||
expected_user_id = str(user_id)
|
||||
|
||||
if token_user_id != expected_user_id:
|
||||
logger.warning("Refresh token user_id mismatch",
|
||||
expected_user_id=expected_user_id,
|
||||
actual_user_id=token_user_id)
|
||||
return False
|
||||
|
||||
if refresh_token.is_revoked:
|
||||
logger.debug("Refresh token is revoked", user_id=user_id)
|
||||
return False
|
||||
|
||||
if refresh_token.expires_at < datetime.now(timezone.utc):
|
||||
logger.debug("Refresh token is expired", user_id=user_id)
|
||||
return False
|
||||
|
||||
logger.debug("Refresh token is valid", user_id=user_id)
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.error("Failed to validate refresh token",
|
||||
user_id=user_id,
|
||||
error=str(e))
|
||||
return False
|
||||
|
||||
async def cleanup_expired_tokens(self) -> int:
|
||||
"""Clean up expired refresh tokens"""
|
||||
|
||||
Reference in New Issue
Block a user