我正在將 React 與 Flask 和 Flask-login 一起使用。我有一個(gè)登錄路由,可以在前端成功登錄用戶。但是,一旦我導(dǎo)航到一個(gè)新頁(yè)面,這會(huì)導(dǎo)致進(jìn)行新的 API 調(diào)用,flask 就會(huì)返回 401。我在 Firefox Web 控制臺(tái)的 Cookies 或 Session Storage 中看不到任何內(nèi)容。@flask_app.route('/<api_version>/login', methods=['POST'])def login(api_version): print(f'login', request.form ) username = request.form['username'] password = request.form['password'] response = None try: user = server.loginUser(username, password) flask_login.login_user(user, remember=True) except Exception as e: errMsg = f'Error Logging in user {username}' status = e.status if hasattr(e, 'status') else 500 print(f'{errMsg}') traceback.print_exc() return Response( '{{"message": "{0}", "status": {1} }}'.format( errMsg, status), status=status, mimetype='application/json') resp_obj = json.dumps({"username": user.username, "role": user.role}) resp = Response(resp_obj, status=200, mimetype='application/json') resp.headers['Content-Type'] = 'application/json' return resp@flask_app.route("/<api_version>/simulation-runs", methods=['GET'])@flask_login.login_requireddef get_simulation_runs(api_version):...服務(wù)器.pyfrom models import account # DBdef loginUser(username, password): print(f'loginUser {username}') user_db = account.get_account(username) print(f'User returned from DB: {user_db}') errMsg = 'Invalid username or password. Please try again.' if not len(user_db) or (not 'password' in user_db): e1 = Unauthorized(errMsg) e1.status = 401 raise e1
1 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
您沒(méi)有記錄用戶并在服務(wù)器上創(chuàng)建會(huì)話。
flask_login.login_user(user) 需要在那里讓服務(wù)器知道登錄已經(jīng)成功。
您還應(yīng)該通過(guò)添加 session['logged_in'] = True 來(lái)創(chuàng)建一個(gè)新會(huì)話
建議有一個(gè)定義明確的用戶類
添加回答
舉報(bào)
0/150
提交
取消