Django 如何强制重定向uri在python社交应用程序中使用HTTPS?
我正在将django框架与python社交应用程序一起使用,尝试使用Facebook登录按钮登录时出错 我的应用程序由三个docker容器组成:Django 如何强制重定向uri在python社交应用程序中使用HTTPS?,django,oauth-2.0,facebook-login,google-login,python-social-auth,Django,Oauth 2.0,Facebook Login,Google Login,Python Social Auth,我正在将django框架与python社交应用程序一起使用,尝试使用Facebook登录按钮登录时出错 我的应用程序由三个docker容器组成: Django应用程序 数据库 NGINX+SSL证书 这是我的错误: 身份验证过程已取消:URL被阻止:此重定向失败 因为重定向URI未在应用程序的客户端OAuth中列出 设置。确保客户端和Web OAuth登录处于打开状态,并添加所有 应用程序域作为有效的OAuth重定向URI。 大宗报价 这是我在尝试登录时可以看到的URL 正如我所看到的,问题在
Django==2.2
social-auth-app-django==3.1.0
social-auth-core==3.1.0
我对这个问题的最佳猜测是,Django应用程序并不“知道”它在NGINX+SSL后面运行,而是使用HTTP协议而不是HTTPS生成重定向uri
Facebook设置具有以HTTPS开头的正确重定向URI。这个问题并不局限于Facebook,谷歌的uri也有同样的问题
如何强制python社交网站使用HTTPS?以下是帮助我的设置: django设置:
# settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
location / {
# ...
proxy_set_header X-Forwarded-Proto $scheme;
}
nginx设置:
# settings.py
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
location / {
# ...
proxy_set_header X-Forwarded-Proto $scheme;
}
来源:您应该寻找的是在Django应用程序的settings.py中添加以下行
SOCIAL_AUTH_REDIRECT_IS_HTTPS = True
通过这种方式重定向django social创建的uri,并包含https
根据上面的回答,您所做的是将http通信重定向到https,如果您试图创建一个仅https的服务器,这仍然是一个问题