我在Django项目中使用allauth,它被配置为使用电子邮件进行身份验证。
- ###allauth配置 *
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_PASSWORD_MIN_LENGTH = 8
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
SOCIALACCOUNT_EMAIL_REQUIRED = True
- 问题是:**
- 注册后,我直接到主页没有确认电子邮件。
- 如果它尝试注销并再次登录,它会将我引导到(accounts/confirm-email/),现在需要确认我的电子邮件。
注
用户被覆盖
x一个一个一个一个x一个一个二个x
我认为注册后,用户不应该能够登录之前,确认他的电子邮件。
2条答案
按热度按时间vd8tlhqk1#
您需要设置的TL;DR
allauth docs中的电子邮件验证显示
发送指向
allauth.account.views.ConfirmEmailView
视图的验证电子邮件在该视图中
以及该函数的内容
它从设置为
LOGIN_REDIRECT_URL
或任何你给它起的名字中获得重定向URL,比如SIGNUP_REDIRECT_URL
将与注册等一起工作。goqiplq22#
这种行为可能是由于Django AllAuth在项目中的配置方式造成的。要解决这个问题,您需要确保邮件验证过程是强制性的,并且必须在用户登录之前完成。
您可以通过创建一个自定义身份验证后端来实现这一点,该后端在允许用户登录之前检查用户的电子邮件是否经过验证。
下面是执行此操作的自定义身份验证后端的示例:
在settings.py文件中,将自定义身份验证后端添加到
AUTHENTICATION_BACKENDS
设置:这样,用户只有在确认了其电子邮件地址后才能登录。