【发布时间】:2012-11-18 18:25:13
【问题描述】:
是否可以在某些情况下阻止帐户创建,最好使用 pre_social_login 信号?
【问题讨论】:
标签: django django-authentication django-allauth
是否可以在某些情况下阻止帐户创建,最好使用 pre_social_login 信号?
【问题讨论】:
标签: django django-authentication django-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 的设置吗?
sociallogin.account.provider,并根据提供者的类型有选择地引发异常。