【发布时间】:2019-10-01 10:31:59
【问题描述】:
我正在使用带有 python-social-app 的 django 框架,并在尝试使用 Facebook 登录按钮登录时出错。
我的应用由三个 docker 容器组成:
- Django 应用程序。
- 数据库。
- NGINX + SSL 证书。
这是我的错误:
身份验证过程已取消:URL 被阻止:此重定向失败 因为重定向 URI 未在应用的客户端 OAuth 中列入白名单 设置。确保客户端和 Web OAuth 登录已打开并添加您的所有 应用程序域作为有效的 OAuth 重定向 URI。 块引用
这是我在尝试登录时可以看到的 URL
我看到的问题是,redirect_uri 以 HTTP 而不是 HTTPS 开头。
Django==2.2
social-auth-app-django==3.1.0
social-auth-core==3.1.0
我对这个问题的最佳猜测是 Django 应用程序不“知道”它在 NGINX+SSL 后面运行并使用 HTTP 协议而不是 HTTPS 生成 redirect_uri。
Facebook 设置具有正确的以 HTTPS 开头的重定向 URI。该问题并非特定于 Facebook,Google 的 redirect_uri 也有同样的问题。
如何强制 python-social 使用 HTTPS?
【问题讨论】:
标签: django oauth-2.0 facebook-login google-login python-social-auth