gpt4 book ai didi

openid - 代理服务器的 Flask-OpenID 问题

转载 作者:行者123 更新时间:2023-12-03 16:54:36 27 4
gpt4 key购买 nike

all - 我在尝试部署使用 Flask-OpenID 扩展的站点时遇到问题。在本地主机上,我通过完整登录 -> 登录周期后移动没有问题 - 但在我的生产服务器上,该服务器在 Flask 应用程序(与 Gunicorn 一起运行)前面运行 Nginx 代理,我收到 openid 错误。我连接到的任何提供者的响应的领域和 openid.return_to 参数。

基本上,领域和 return_to 指向我的下游 Flask 应用程序而不是代理服务器。例如,对于 http://www.foo.com/login/ 的预期“下一个”网址Flask-OpenID 机器使提供者改为以 http://127.0.0.1:8000/login/?next=/login/ 为目标,这是我的 Flask 应用程序正在运行的本地主机和端口。

有什么方法可以控制这种行为并让 Flask-OpenID 通过代理服务器正确重定向?

最佳答案

听起来您的代理服务器没有传递 HOST header ,使用 nginx 您可以使用 proxy_set_header Host $host;在您的位置指令中。

您可能还想查看设置 X-Forwarded-For和 X-Forwarded-Proto header ,以便您可以正确读取实际的客户端 IP 和协议(protocol)。 Werkzeug 提供 fixer为了帮助解决这个问题,Flask docs 中有一个详细的示例, request.remote_addr那么应该是你所期望的。

这是一个更完整的 nginx 位置指令:

location / {
proxy_pass http://localhost:8000/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

关于openid - 代理服务器的 Flask-OpenID 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14568671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com