David Ko commited on
Commit
dfdf7e7
ยท
1 Parent(s): 8fdf1e4

Fix login redirect loop with improved session handling and debugging

Browse files
Files changed (1) hide show
  1. api.py +24 -5
api.py CHANGED
@@ -83,10 +83,18 @@ users = {
83
  @login_manager.user_loader
84
  def load_user(user_id):
85
  print(f"Loading user with ID: {user_id}")
86
- # user_id๊ฐ€ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ์ฒ˜๋ฆฌ
 
 
 
 
87
  for username, user in users.items():
88
- if user.id == user_id:
89
- print(f"User found: {username}")
 
 
 
 
90
  return user
91
  print(f"User not found with ID: {user_id}")
92
  return None
@@ -1195,15 +1203,26 @@ def serve_static(filename):
1195
 
1196
  # ์ธ๋ฑ์Šค HTML ์ง์ ‘ ์„œ๋น™ (๋กœ๊ทธ์ธ ํ•„์š”)
1197
  @app.route('/index.html')
1198
- @login_required
1199
  def serve_index_html():
 
 
 
 
 
 
1200
  if not current_user.is_authenticated:
1201
  print("User not authenticated, redirecting to login")
1202
  return redirect(url_for('login'))
1203
 
1204
- print(f"Serving index.html for authenticated user: {current_user.username}")
1205
  # ์„ธ์…˜ ์ƒํƒœ ๋””๋ฒ„๊ทธ
1206
  print(f"Session data: user_id={session.get('user_id')}, username={session.get('username')}, is_permanent={session.get('permanent', False)}")
 
 
 
 
 
 
1207
  return send_from_directory(app.static_folder, 'index.html')
1208
 
1209
  # ๊ธฐ๋ณธ ๊ฒฝ๋กœ ๋ฐ ๊ธฐํƒ€ ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ (๋กœ๊ทธ์ธ ํ•„์š”)
 
83
  @login_manager.user_loader
84
  def load_user(user_id):
85
  print(f"Loading user with ID: {user_id}")
86
+ # ์„ธ์…˜ ๋””๋ฒ„๊ทธ ์ •๋ณด ์ถœ๋ ฅ
87
+ print(f"Session data in user_loader: {dict(session)}")
88
+ print(f"Current request cookies: {request.cookies}")
89
+
90
+ # user_id๊ฐ€ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ID๋กœ ์ฒ˜๋ฆฌ
91
  for username, user in users.items():
92
+ if str(user.id) == str(user_id): # ํ™•์‹คํ•œ ๋ฌธ์ž์—ด ๋น„๊ต
93
+ print(f"User found: {username}, ID: {user.id}")
94
+ # ์„ธ์…˜ ์ •๋ณด ์—…๋ฐ์ดํŠธ
95
+ session['user_id'] = user.id
96
+ session['username'] = username
97
+ session.modified = True
98
  return user
99
  print(f"User not found with ID: {user_id}")
100
  return None
 
1203
 
1204
  # ์ธ๋ฑ์Šค HTML ์ง์ ‘ ์„œ๋น™ (๋กœ๊ทธ์ธ ํ•„์š”)
1205
  @app.route('/index.html')
 
1206
  def serve_index_html():
1207
+ # ์„ธ์…˜ ๋ฐ ์ฟ ํ‚ค ๋””๋ฒ„๊ทธ ์ •๋ณด
1208
+ print(f"Request to /index.html - Session data: {dict(session)}")
1209
+ print(f"Request to /index.html - Cookies: {request.cookies}")
1210
+ print(f"Request to /index.html - User authenticated: {current_user.is_authenticated}")
1211
+
1212
+ # ์ธ์ฆ ํ™•์ธ
1213
  if not current_user.is_authenticated:
1214
  print("User not authenticated, redirecting to login")
1215
  return redirect(url_for('login'))
1216
 
1217
+ print(f"Serving index.html for authenticated user: {current_user.username} (ID: {current_user.id})")
1218
  # ์„ธ์…˜ ์ƒํƒœ ๋””๋ฒ„๊ทธ
1219
  print(f"Session data: user_id={session.get('user_id')}, username={session.get('username')}, is_permanent={session.get('permanent', False)}")
1220
+
1221
+ # ์„ธ์…˜ ์œ ์ง€๋ฅผ ์œ„ํ•ด ์„ธ์…˜ ์—…๋ฐ์ดํŠธ
1222
+ session['user_id'] = current_user.id
1223
+ session['username'] = current_user.username
1224
+ session.modified = True
1225
+
1226
  return send_from_directory(app.static_folder, 'index.html')
1227
 
1228
  # ๊ธฐ๋ณธ ๊ฒฝ๋กœ ๋ฐ ๊ธฐํƒ€ ๊ฒฝ๋กœ ์ฒ˜๋ฆฌ (๋กœ๊ทธ์ธ ํ•„์š”)