Django-allauth facebook连接JS SDK

时间:2012-12-08 18:55:25

标签: django facebook facebook-javascript-sdk facebook-authentication django-allauth

我可以成功使用django-allauth让用户通过facebook的OAuth2机制登录。现在我想通过facebook的JS sdk启用登录。

docs

  

对于Facebook,支持OAuth2和Facebook Connect Javascript SDK。你甚至可以混合两者。

不幸的是,示例代码没有显示如何使用js sdk。通过阅读代码我发现我需要设置

SOCIALACCOUNT_PROVIDERS = {
    'facebook': {
        'SCOPE': ['email', 'publish_stream'],
        'METHOD': 'js_sdk'  # instead of 'oauth2'
    }
}

并在我的html模板的body标记中包含以下代码段

{% include "facebook/fbconnect.html" %}

我还在TEMPLATE_CONTEXT_PROCESSORS添加了以下内容:

allauth.account.context_processors.account
allauth.socialaccount.context_processors.socialaccount

出于某种原因,这似乎还不够,因为facebook/fbconnect.html中要替换的变量似乎都没有设置,导致它们被空字符串替换。此外,{% provider_login_url 'facebook' method='js_sdk' %}生成的链接只是javascript:FB_login(''),这显然是错误的。

我错过了什么?

1 个答案:

答案 0 :(得分:3)

我刚刚发现了如何做到这一点。而不是做

{% include "facebook/fbconnect.html" %}

我应该做

{% providers_media_js %}