【发布时间】:2019-08-17 22:32:21
【问题描述】:
我正在建立一个具有以下基础架构的技术博客:
Client <---domain.tld:80---> Nginx Reverse Proxy <---localhost:8001---> Docker container with Django web app
我在容器中使用 Gunicorn 作为 WSGI Web 服务器。
我面临的问题是,当我想在我的评论部分包含 Google 身份验证并调用我的相应 URI 进行身份验证(即http://domain.tld/auth/login/google-oauth2/)时,我从 google 收到以下错误:
请求中的重定向 URI http://localhost:8001/auth/complete/google-oauth2/ 与授权给 OAuth 客户端的不匹配。
所以主要问题是谷歌认为我希望重定向主机是本地主机,因为我的应用程序部署在本地主机上(并且只通过我的反向代理服务到互联网),但我当然需要它改为 domain.tld。
我没有找到一个选项,如果我可以明确告诉谷歌应该将流量重定向到,我只能授权 URI。
当然我尝试允许本地主机重定向访问,但显然这并没有帮助,因为谷歌重定向到本地主机 URI。
我的代码主要基于this blog post和this stackoverflow question。
由于这主要是从我的服务器到 URL 的链接调用,我认为我的代码根本不应该有那么有用。
感谢您提供任何有用的反馈!
【问题讨论】:
-
“google 认为我希望重定向主机是 localhost”的原因是因为在您的应用程序的某个地方,这就是您告诉 Google 的内容。你需要深入了解你正在使用的 oauth 库,看看如何告诉它你的重定向 url 是什么。
标签: django python-3.x docker nginx google-oauth