【问题标题】:How to make allauth accept only gmail addresses belonging to a certain institute?如何让allauth只接受属于某个机构的gmail地址?
【发布时间】:2017-06-18 11:37:33
【问题描述】:

例子:-

qwe123@pilani.bits-pilani.ac.in

我想我只需要检查电子邮件地址中是否存在“模板结尾”,但问题是在 allauth 包中检查它的位置

【问题讨论】:

  • 这个解决了吗?
  • 没有指定的方式不起作用
  • 当且仅当您想吸引反对票时,请在 stackoverflow 上使用“不起作用”一词。对于所有其他情况,请解释发生了什么,例如出现的错误消息

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


【解决方案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 语句,或者可能为允许的电子邮件地址模式创建一个模型。

【讨论】:

  • 好吧,我只是对包含此代码的确切位置感到困惑。
  • 信号处理程序的通常位置是在views.py 中,但它也可以在models.py 中。如需更多信息,请stackoverflow.com/questions/40746137/…
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    相关资源
    最近更新 更多