2012-11-30 35 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

相关问题