Spaces:
Running
Running
sunheycho
commited on
Commit
ยท
f48f381
1
Parent(s):
ab5ee8c
Fix Flask-Login user loader to support cookie fallback
Browse files- Enhanced user_loader to check cookies when session is empty
- Restore session data from auth cookies automatically
- Enable @login_required decorators to work with cookie authentication
- Fix API endpoints 302 redirect issues
api.py
CHANGED
@@ -222,7 +222,26 @@ def load_user(user_id):
|
|
222 |
print(f"Session data in user_loader: {dict(session)}")
|
223 |
print(f"Current request cookies: {request.cookies}")
|
224 |
|
225 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
for username, user in users.items():
|
227 |
if str(user.id) == str(user_id): # ํ์คํ ๋ฌธ์์ด ๋น๊ต
|
228 |
print(f"User found: {username}, ID: {user.id}")
|
|
|
222 |
print(f"Session data in user_loader: {dict(session)}")
|
223 |
print(f"Current request cookies: {request.cookies}")
|
224 |
|
225 |
+
# Check session first, then fallback to cookies
|
226 |
+
session_user_id = session.get('user_id')
|
227 |
+
if not session_user_id:
|
228 |
+
# Try to get from cookies
|
229 |
+
cookie_user_id = request.cookies.get('auth_user_id')
|
230 |
+
cookie_username = request.cookies.get('auth_username')
|
231 |
+
print(f"Session empty, checking cookies: user_id={cookie_user_id}, username={cookie_username}")
|
232 |
+
|
233 |
+
if cookie_user_id and cookie_username:
|
234 |
+
# Verify cookie user exists
|
235 |
+
for username, user in users.items():
|
236 |
+
if str(user.id) == str(cookie_user_id) and username == cookie_username:
|
237 |
+
print(f"User found via cookies: {username}, ID: {user.id}")
|
238 |
+
# Restore session from cookies
|
239 |
+
session['user_id'] = user.id
|
240 |
+
session['username'] = username
|
241 |
+
session.modified = True
|
242 |
+
return user
|
243 |
+
|
244 |
+
# Original session-based lookup
|
245 |
for username, user in users.items():
|
246 |
if str(user.id) == str(user_id): # ํ์คํ ๋ฌธ์์ด ๋น๊ต
|
247 |
print(f"User found: {username}, ID: {user.id}")
|