David Ko commited on
Commit
a44b826
ยท
1 Parent(s): 51bb097

Fix authentication issues with Flask-Login

Browse files
Files changed (1) hide show
  1. api.py +29 -4
api.py CHANGED
@@ -49,6 +49,9 @@ class User(UserMixin):
49
  self.id = id
50
  self.username = username
51
  self.password = password
 
 
 
52
 
53
  # ํ…Œ์ŠคํŠธ์šฉ ์‚ฌ์šฉ์ž (์‹ค์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ๊ถŒ์žฅ)
54
  users = {
@@ -56,11 +59,16 @@ users = {
56
  'user': User('2', 'user', 'user123')
57
  }
58
 
 
59
  @login_manager.user_loader
60
  def load_user(user_id):
61
- for user in users.values():
 
 
62
  if user.id == user_id:
 
63
  return user
 
64
  return None
65
 
66
  # Model initialization
@@ -1118,6 +1126,11 @@ LOGIN_TEMPLATE = '''
1118
 
1119
  @app.route('/login', methods=['GET', 'POST'])
1120
  def login():
 
 
 
 
 
1121
  error = None
1122
  if request.method == 'POST':
1123
  username = request.form.get('username')
@@ -1133,13 +1146,15 @@ def login():
1133
  session['username'] = username
1134
  session.permanent = True
1135
 
1136
- print(f"Login successful for user: {username}")
1137
 
1138
  # ๋ฆฌ๋””๋ ‰์…˜ ์ฒ˜๋ฆฌ
1139
  next_page = request.args.get('next')
1140
  if next_page and next_page.startswith('/'):
 
1141
  return redirect(next_page)
1142
- return redirect('/')
 
1143
  else:
1144
  error = 'Invalid username or password'
1145
  print(f"Login failed: {error}")
@@ -1193,9 +1208,19 @@ def status():
1193
  "user": current_user.username
1194
  })
1195
 
 
 
 
 
 
 
 
 
 
 
1196
  @app.route('/index')
1197
  @login_required
1198
- def index():
1199
  return send_from_directory('static', 'index.html')
1200
 
1201
  if __name__ == "__main__":
 
49
  self.id = id
50
  self.username = username
51
  self.password = password
52
+
53
+ def get_id(self):
54
+ return str(self.id) # Flask-Login์€ ๋ฌธ์ž์—ด ID๋ฅผ ์š”๊ตฌํ•จ
55
 
56
  # ํ…Œ์ŠคํŠธ์šฉ ์‚ฌ์šฉ์ž (์‹ค์ œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ๊ถŒ์žฅ)
57
  users = {
 
59
  'user': User('2', 'user', 'user123')
60
  }
61
 
62
+ # ์‚ฌ์šฉ์ž ๋กœ๋” ํ•จ์ˆ˜
63
  @login_manager.user_loader
64
  def load_user(user_id):
65
+ print(f"Loading user with ID: {user_id}")
66
+ # user_id๊ฐ€ ๋ฌธ์ž์—ด๋กœ ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ์ฒ˜๋ฆฌ
67
+ for username, user in users.items():
68
  if user.id == user_id:
69
+ print(f"User found: {username}")
70
  return user
71
+ print(f"User not found with ID: {user_id}")
72
  return None
73
 
74
  # Model initialization
 
1126
 
1127
  @app.route('/login', methods=['GET', 'POST'])
1128
  def login():
1129
+ # ์ด๋ฏธ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž๋Š” ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋””๋ ‰์…˜
1130
+ if current_user.is_authenticated:
1131
+ print(f"User already authenticated as: {current_user.username}, redirecting to index")
1132
+ return redirect('/index')
1133
+
1134
  error = None
1135
  if request.method == 'POST':
1136
  username = request.form.get('username')
 
1146
  session['username'] = username
1147
  session.permanent = True
1148
 
1149
+ print(f"Login successful for user: {username}, ID: {user.id}")
1150
 
1151
  # ๋ฆฌ๋””๋ ‰์…˜ ์ฒ˜๋ฆฌ
1152
  next_page = request.args.get('next')
1153
  if next_page and next_page.startswith('/'):
1154
+ print(f"Redirecting to: {next_page}")
1155
  return redirect(next_page)
1156
+ print("Redirecting to index page")
1157
+ return redirect('/index')
1158
  else:
1159
  error = 'Invalid username or password'
1160
  print(f"Login failed: {error}")
 
1208
  "user": current_user.username
1209
  })
1210
 
1211
+ @app.route('/')
1212
+ def index():
1213
+ print(f"Root route accessed, user authenticated: {current_user.is_authenticated}")
1214
+ if current_user.is_authenticated:
1215
+ print(f"User is authenticated as: {current_user.id}")
1216
+ return redirect('/index')
1217
+ else:
1218
+ print("User is not authenticated, redirecting to login")
1219
+ return redirect(url_for('login'))
1220
+
1221
  @app.route('/index')
1222
  @login_required
1223
+ def index_page():
1224
  return send_from_directory('static', 'index.html')
1225
 
1226
  if __name__ == "__main__":