2014-03-05 27 views
2

使用django allauth用戶可以使用Facebook註冊我的網站。他們需要完成註冊過程,在我的系統上創建一個帳戶。Django allauth推薦刪除社交賬戶的方法

登錄後用戶需要能夠從Facebook斷開連接,但仍然是我的網站的成員。

目前我有一個視圖可以手動從數據庫中刪除社交賬戶,但是即時通訊注意到問題,如果您嘗試再次添加您的社交賬戶,您必須重新註冊,這是不可能的(因爲賬戶存在)。要重新添加的社交網絡帳戶,我簡單地使用:

{% load socialaccount %} 
<a href="{% provider_login_url "facebook" method="oauth2" %}">Facebook OAuth2</a> 

我讀the docs,並提到在支持的流:

斷開的社交帳戶

不過,我可以」 t找到進一步的信息,並沒有'刪除'的網址在urls.py

我懷疑它與用戶被記錄有關當試圖連接帳戶,因爲當我嘗試重新登錄時使用我的FB帳戶(使用相同的{%socialaccount%}鏈接),它工作正常(不需要額外註冊)

我的問題是什麼建議刪除社交帳戶的方式?

回答

4

Django-allauth帶有處理斷開連接的社交帳戶的視圖(allauth.socialaccount.views.ConnectionsView)。你可以直接使用它,或者只是看看它是如何工作的,並做自己的版本。其中的邏輯是在allauth.socialaccount.forms.DisconnectForm

from allauth.socialaccount import signals 

def save(self): 
    account = self.cleaned_data['account'] 
    account.delete() 
    signals.social_account_removed.send(sender=SocialAccount, 
             request=self.request, 
             socialaccount=account) 

到社交帳戶添加到現有的帳戶,你需要使用process="connect"provider_login_url(和用戶需要在您的網站,登錄時,他們一下就可以了)。因此,請將您的鏈接更改爲:

<a href="{% provider_login_url "facebook" process="connect" method="oauth2" %}">Facebook OAuth2</a> 
+0

process =「connect」正是我需要的,謝謝! – sidarcy

+0

你知道如何自定義process =「connect」成功返回URL嗎?連接帳戶後,它從FB頁面重定向到'views.ConnectionsView'。有沒有任何標準的方法來改變這個URL到我需要的東西? – abcdn

相關問題