我遵循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的远程服务器上运行。当我在本地运行代码时,没有任何问题。该问题仅在远程服务器上出现。
关于如何调试的任何建议?
谢谢!
已修复。我在配置文件中设置了无效的SESSION_COOKIE_NAME。将其更改为默认值,一切正常。
对于将来最终会遇到此问题的冒险家:请确保您正确设置了会话环境变量!您需要一个应用密钥和一个会话Cookie名称,Flask Sessions才能运行。