我指的是实施django social-auth
的教程,我已成功为Twitter和Google+实施了它。但是,在Facebook的情况下,我没有看到必须为Facebook提供的“有效的OAuth重定向URI”。我假设facebook的新开发者控制台有这个新领域。
通过将该字段留空,我仍然能够登录,但我没有从FB获得相关详细信息。可能是因为这个“重定向URI”。
我按照下面的教程
我猜测“http://localhost:8000/oauth/complete/facebook/”可能是查看google +和twitter模式的URI,但我仍然没有收到用户的电子邮件ID。
有人可以在他们的Django App中确认他们用于Facebook的重定向URI
答案 0 :(得分:0)
问题是Django通过Facebook重定向URI策略发送 redirect_state参数 不允许。
这是一个简单的解决方案:
为Facebook OAuth创建一个不会传递redirect_state的新后端:
from social_core.backends.facebook import FacebookOAuth2
class CustomFacebookOauth(FacebookOAuth2):
REDIRECT_STATE = False
在CustomFacebookOauth
settings.py中的AUTHENTICATION_BACKENDS
更改social_core.backends.facebook.FacebookOAuth2。
答案 1 :(得分:0)
经过几个小时的头痛我终于发现它是
https://{your_website_name}/social-auth/complete/facebook/
例如https://www.instagram.com/social-auth/complete/facebook/
请注意,https
是 facebook 强制要求的。