4
是否有可能在某些情况下防止在allauth中创建帐户,最好是使用pre_social_login信号?防止在allauth中创建社交帐户
是否有可能在某些情况下防止在allauth中创建帐户,最好是使用pre_social_login信号?防止在allauth中创建社交帐户
与当前的开发分支,你可以轻松地做到这一点。在您的设置:
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
但是,这将改变适配器为所有社会供应商,我可以像使用''MY_SOCIAL_ SOCIALACCOUNT_ADAPTER''一些设置为MySocialProvider? – kxxoling
您可以检查'sociallogin.account.provider',并选择性地提高基于提供者类型的异常。 – pennersr
当我有很多供应商明确处理时,这会很麻烦。单独配置它们会更加整洁,我认为。 – kxxoling