Spaces:
Running
Running
Commit
Β·
2431039
1
Parent(s):
1c1facd
Add comprehensive session debugging
Browse files- Fix SessionMiddleware parameters (remove unsupported options)
- Add session debugging in auth callback after saving
- Fix cookie name check to use default 'session'
- Compare session state between save and read operations
- This will show exactly where session data is lost
- backend/app.py +1 -3
- backend/dependencies.py +1 -1
- backend/routers/auth.py +7 -0
backend/app.py
CHANGED
|
@@ -70,9 +70,7 @@ if is_huggingface_space():
|
|
| 70 |
max_age=3600, # Shorter expiry for HF Spaces (1 hour)
|
| 71 |
same_site="none", # More permissive for HF Spaces proxy
|
| 72 |
https_only=True, # HF Spaces uses HTTPS
|
| 73 |
-
|
| 74 |
-
path="/", # Explicit path
|
| 75 |
-
domain=None, # Let HF Spaces handle domain
|
| 76 |
)
|
| 77 |
else:
|
| 78 |
# Local development session configuration
|
|
|
|
| 70 |
max_age=3600, # Shorter expiry for HF Spaces (1 hour)
|
| 71 |
same_site="none", # More permissive for HF Spaces proxy
|
| 72 |
https_only=True, # HF Spaces uses HTTPS
|
| 73 |
+
# Note: SessionMiddleware doesn't support custom cookie name, using default
|
|
|
|
|
|
|
| 74 |
)
|
| 75 |
else:
|
| 76 |
# Local development session configuration
|
backend/dependencies.py
CHANGED
|
@@ -128,7 +128,7 @@ def get_current_user_optional(request: Request) -> Optional[Dict[str, Any]]:
|
|
| 128 |
# Log HF-specific session debugging info
|
| 129 |
cookies = request.cookies
|
| 130 |
logger.warning(f"πͺ HF Spaces cookies: {list(cookies.keys())}")
|
| 131 |
-
logger.warning(f"πͺ Session cookie present: {'
|
| 132 |
|
| 133 |
# Check if session middleware is properly initialized
|
| 134 |
session_data = dict(request.session) if hasattr(request.session, 'keys') else {}
|
|
|
|
| 128 |
# Log HF-specific session debugging info
|
| 129 |
cookies = request.cookies
|
| 130 |
logger.warning(f"πͺ HF Spaces cookies: {list(cookies.keys())}")
|
| 131 |
+
logger.warning(f"πͺ Session cookie present: {'session' in cookies}") # Default SessionMiddleware cookie name
|
| 132 |
|
| 133 |
# Check if session middleware is properly initialized
|
| 134 |
session_data = dict(request.session) if hasattr(request.session, 'keys') else {}
|
backend/routers/auth.py
CHANGED
|
@@ -210,6 +210,13 @@ async def oauth_callback(request: Request, code: str, state: str):
|
|
| 210 |
logger.info(f"β
Session verification successful: {stored_user['username']}")
|
| 211 |
else:
|
| 212 |
logger.error("β Session verification failed - user not found after saving")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
|
| 214 |
except Exception as e:
|
| 215 |
logger.error(f"β Failed to save user to session: {e}")
|
|
|
|
| 210 |
logger.info(f"β
Session verification successful: {stored_user['username']}")
|
| 211 |
else:
|
| 212 |
logger.error("β Session verification failed - user not found after saving")
|
| 213 |
+
|
| 214 |
+
# Debug session state after saving
|
| 215 |
+
from utils.environment import is_huggingface_space
|
| 216 |
+
if is_huggingface_space():
|
| 217 |
+
session_keys = list(request.session.keys()) if hasattr(request.session, 'keys') else []
|
| 218 |
+
logger.info(f"π Auth callback - session keys after save: {session_keys}")
|
| 219 |
+
logger.info(f"π Auth callback - full session: {dict(request.session)}")
|
| 220 |
|
| 221 |
except Exception as e:
|
| 222 |
logger.error(f"β Failed to save user to session: {e}")
|