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

Files changed (1) hide show
  1. api.py +20 -1
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
- # user_id๊ฐ€ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ID๋กœ ์ฒ˜๋ฆฌ
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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}")