2012-11-30 34 views

回答

6

與當前的開發分支,你可以輕鬆地做到這一點。在您的設置:

SOCIALACCOUNT_ADAPTER = 'my.adapter.MySocialAccountAdapter' 

然後用這個adapter.py:

from django.http import HttpResponse 

from allauth.socialaccount.adapter import DefaultSocialAccountAdapter 
from allauth.exceptions import ImmediateHttpResponse 

class MySocialAccountAdapter(DefaultSocialAccountAdapter): 
    def pre_social_login(self, request, sociallogin): 
     raise ImmediateHttpResponse(HttpResponse('Closed for the day')) 

另外,從pre_social_login信號引起類似的例外(雖然我不喜歡這種做法 - 看到在文檔上指出https://github.com/pennersr/django-allauth/blob/master/allauth/socialaccount/adapter.py#L15

+0

但是,這將改變適配器爲所有社會供應商,我可以像使用''MY_SOCIAL_ SOCIALACCOUNT_ADAPTER''一些設置爲MySocialProvider? – kxxoling

+0

您可以檢查'sociallogin.account.provider',並選擇性地提高基於提供者類型的異常。 – pennersr

+0

當我有很多供應商明確處理時,這會很麻煩。單獨配置它們會更加整潔,我認爲。 – kxxoling

相關問題