我可以成功地使用 django-allauth 让用户通过 facebook 的 OAuth2 机制登录。现在我想通过 facebook 的 JS sdk 启用登录。
文档说_
Facebook 支持 OAuth2 和 Facebook Connect Javascript SDK。您甚至可以将两者混合使用。
不幸的是,示例代码没有显示如何使用 js sdk。通过阅读代码我发现我需要设置
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': ['email', 'publish_stream'],
'METHOD': 'js_sdk' # instead of 'oauth2'
}
}
body
并在我的 html 模板的标签中包含以下代码段
{% 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' %}
is just生成的链接javascript:FB_login('')
显然是错误的。
我错过了什么?