如何让allauth只接受属于某个学院的gmail地址?

时间:2017-02-01 16:19:02

标签: python django python-3.x django-allauth

实施例: -

qwe123 @ pilani.bits-pilani.ac.in

我想我只需要检查"模板是否结束"是否存在于电子邮件地址中,但问题是在allauth包中检查它

2 个答案:

答案 0 :(得分:1)

据我所知,在django-allauth中没有直接的方法。最好的办法是收听user_signed_up信号,并禁用没有所需电子邮件地址格式的帐户。

from allauth.account.signals import user_signed_up
from django.dispatch import receiver

@receiver(user_signed_up)
def after_user_signed_up(request, user):
    if user.email.endswith('pilani.bits-pilani.ac.in'):
         # do something for valid accounts
    else :
         user.is_active = False
         user.save()
         # raise SomeException

如果您有多个地址模式,则需要多个if语句,或者可能为允许的电子邮件地址模式创建模型。

答案 1 :(得分:0)

没有直接的方法可以做到这一点。但肯定没有什么间接方式。您可以使用email header进行检查。从这里您可以获得有关该电子邮件的基本信息。您可以存储ip address并使用特定域进行过滤。