Facebook的有效OAuth重定向URI - Django Social Auth

时间:2017-07-25 15:31:43

标签: django facebook python-2.7 django-socialauth

我指的是实施django social-auth的教程,我已成功为Twitter和Google+实施了它。但是,在Facebook的情况下,我没有看到必须为Facebook提供的“有效的OAuth重定向URI”。我假设facebook的新开发者控制台有这个新领域。

通过将该字段留空,我仍然能够登录,但我没有从FB获得相关详细信息。可能是因为这个“重定向URI”。

enter image description here

我按照下面的教程

我猜测“http://localhost:8000/oauth/complete/facebook/”可能是查看google +和twitter模式的URI,但我仍然没有收到用户的电子邮件ID。

有人可以在他们的Django App中确认他们用于Facebook的重定向URI

2 个答案:

答案 0 :(得分:0)

问题是Django通过Facebook重定向URI策略发送 redirect_state参数 不允许

这是一个简单的解决方案:

  1. 为Facebook OAuth创建一个不会传递redirect_state的新后端:

    from social_core.backends.facebook import FacebookOAuth2
    
    class CustomFacebookOauth(FacebookOAuth2):
        REDIRECT_STATE = False
    
  2. 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 强制要求的。