django - 使用 nginx 反向代理 + docker setup 避免从公共服务器调用 Google oauth 重定向到本地主机
问题描述
我正在建立一个具有以下基础架构的技术博客:
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/)时,我得到以下信息来自谷歌的错误:
请求中的重定向 URI http://localhost:8001/auth/complete/google-oauth2/与授权给 OAuth 客户端的不匹配。
所以主要问题是谷歌认为我希望重定向主机是本地主机,因为我的应用程序部署在本地主机上(并且只通过我的反向代理服务到互联网),但我当然需要它是 domain.tld 代替。
我没有找到一个选项,我可以明确告诉谷歌流量应该被重定向到,我只能授权 URI。
当然,我尝试允许本地主机重定向访问,但显然这无济于事,因为谷歌重定向到本地主机 URI。
我的代码主要基于this blog post和this stackoverflow question。
由于这主要是从我的服务器到 URL 的链接调用,我认为我的代码根本不应该那么有用。
我感谢任何有用的反馈!
解决方案
您可以使用serveo(或类似的服务 - ngrok 等)来公开您的本地服务器,并通过它让 google 或其他 oauth 提供程序回调。
您也可以忽略此问题并/admin
在本地环境中登录。
推荐阅读
- laravel - 使用 Laravel Echo 时 Vue 未定义的属性 Id
- python - 将 Python 脚本转换为 Web 工具
- karate - 在空手道场景大纲中经过一定次数的迭代后引入延迟
- go - 项目结构和导入包
- ionic-framework - 离子:routerLink 不再工作,因为使用选项卡实现导航
- python - 为什么我的线程进程仍然冻结?
- powershell - 为什么powershell不打印带有换行符的txt?
- r - R:如何分隔和添加由“;”分隔的数值 (内存溢出问题)
- gitlab - Terraform - 从子模块访问根模块脚本
- javascript - 如何从 React Native 中的 Firestore 获取集合中的所有文档