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(''),這顯然是錯誤的。

我錯過了什麼?

回答

2

我剛剛找到了如何做到這一點。而不是做

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

的我應該做的

{% providers_media_js %}