Spaces:
Running
Running
logging: add diagnostic logs for refresh token failures
Browse files- auth/routes.py +11 -1
auth/routes.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
import uuid
|
|
|
|
| 2 |
import cloudinary
|
| 3 |
import cloudinary.uploader
|
| 4 |
from datetime import timezone, datetime
|
|
@@ -6,6 +7,8 @@ from fastapi import APIRouter, HTTPException, UploadFile, File, Response, Reques
|
|
| 6 |
from fastapi import Depends
|
| 7 |
from typing import Optional
|
| 8 |
|
|
|
|
|
|
|
| 9 |
from src.config import settings
|
| 10 |
from src.database import get_auth_supabase, get_supabase
|
| 11 |
from src.store import create_user, get_user_by_email, delete_user_data, update_user_profile, get_user_by_id
|
|
@@ -415,12 +418,19 @@ async def refresh_session(request: Request, response: Response):
|
|
| 415 |
"""
|
| 416 |
raw = request.cookies.get(REFRESH_COOKIE_NAME)
|
| 417 |
if not raw:
|
|
|
|
| 418 |
raise HTTPException(401, "No refresh token cookie found")
|
| 419 |
|
| 420 |
token_hash = hash_token(raw)
|
| 421 |
row = get_refresh_token(token_hash)
|
| 422 |
|
| 423 |
-
if not row
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 424 |
_clear_refresh_cookie(response)
|
| 425 |
raise HTTPException(401, "Refresh token is invalid, expired, or revoked")
|
| 426 |
|
|
|
|
| 1 |
import uuid
|
| 2 |
+
import logging
|
| 3 |
import cloudinary
|
| 4 |
import cloudinary.uploader
|
| 5 |
from datetime import timezone, datetime
|
|
|
|
| 7 |
from fastapi import Depends
|
| 8 |
from typing import Optional
|
| 9 |
|
| 10 |
+
logger = logging.getLogger(__name__)
|
| 11 |
+
|
| 12 |
from src.config import settings
|
| 13 |
from src.database import get_auth_supabase, get_supabase
|
| 14 |
from src.store import create_user, get_user_by_email, delete_user_data, update_user_profile, get_user_by_id
|
|
|
|
| 418 |
"""
|
| 419 |
raw = request.cookies.get(REFRESH_COOKIE_NAME)
|
| 420 |
if not raw:
|
| 421 |
+
logger.warning("Refresh session failed: No refresh token cookie found in request. Cookies present: %s", list(request.cookies.keys()))
|
| 422 |
raise HTTPException(401, "No refresh token cookie found")
|
| 423 |
|
| 424 |
token_hash = hash_token(raw)
|
| 425 |
row = get_refresh_token(token_hash)
|
| 426 |
|
| 427 |
+
if not row:
|
| 428 |
+
logger.warning("Refresh session failed: Token hash (%s...) not found in refresh_tokens table", token_hash[:8])
|
| 429 |
+
_clear_refresh_cookie(response)
|
| 430 |
+
raise HTTPException(401, "Refresh token is invalid, expired, or revoked")
|
| 431 |
+
|
| 432 |
+
if not is_token_valid(row):
|
| 433 |
+
logger.warning("Refresh session failed: Token for user %s is expired or revoked (expires_at=%s, revoked=%s)", row.get("user_id"), row.get("expires_at"), row.get("revoked"))
|
| 434 |
_clear_refresh_cookie(response)
|
| 435 |
raise HTTPException(401, "Refresh token is invalid, expired, or revoked")
|
| 436 |
|