1
我可以成功地使用Django的allauth讓用戶通過Facebook的的OAuth2機制登錄。現在我想通過Facebook的JS sdk啓用登錄。Django的allauth謝謝連接JS SDK
的docs說
對於Facebook來說兩者的OAuth2和Facebook連接的Javascript SDK的支持。你甚至可以混合兩者。
不幸的是,示例代碼並未顯示如何使用js sdk。通過閱讀代碼,我發現我需要設置
SOCIALACCOUNT_PROVIDERS = {
'facebook': {
'SCOPE': ['email', 'publish_stream'],
'METHOD': 'js_sdk' # instead of 'oauth2'
}
}
,包括在我的HTML模板
{% include "facebook/fbconnect.html" %}
的body
標籤下面的代碼片段我還增加了以下我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('')
,這顯然是錯誤的。
我錯過了什麼?