Flask登录无法设置会话cookie

问题描述 投票:0回答:1

我遵循this tutorial on Real Python为我的网站设置Google OAuth登录。 (codebase for tutorial here

我将代码分成蓝图并使用应用程序工厂方法启动来修改了代码。

我通过将本教程的代码分成一个单独的蓝图并使用应用程序工厂方法来使用本教程的代码。通过Google OAuth收集用户的详细信息,并将其存储在数据库中。从Google获取的用户数据可以完美地反映在本地数据库中,但是在回调函数中,当user对象传递给login_user函数时,出现以下错误–

Traceback (most recent call last):
  File "/home/user/otpd/venv/lib/python3.6/site-packages/flask/app.py", line 1969, in finalize_request
    response = self.process_response(response)
  File "/home/user/otpd/venv/lib/python3.6/site-packages/flask/app.py", line 2268, in process_response
    self.session_interface.save_session(self, ctx.session, response)
  File "/home/user/otpd/venv/lib/python3.6/site-packages/flask/sessions.py", line 387, in save_session
    samesite=samesite,
  File "/home/user/otpd/venv/lib/python3.6/site-packages/werkzeug/wrappers/base_response.py", line 481, in set_cookie
    samesite=samesite,
  File "/home/user/otpd/venv/lib/python3.6/site-packages/werkzeug/http.py", line 1163, in dump_cookie
    buf = [key + b"=" + _cookie_quote(value)]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'bytes'

该代码在使用Gunicorn的远程服务器上运行。当我在本地运行代码时,没有任何问题。该问题仅在远程服务器上出现。

关于如何调试的任何建议?

谢谢!

python flask google-oauth flask-login
1个回答
0
投票

已修复。我在配置文件中设置了无效的SESSION_COOKIE_NAME。将其更改为默认值,一切正常。

对于将来最终会遇到此问题的冒险家:请确保您正确设置了会话环境变量!您需要一个应用密钥和一个会话Cookie名称,Flask Sessions才能运行。

© www.soinside.com 2019 - 2024. All rights reserved.