Как я могу рассматривать сброс пароля allauth как проверку электронной почты?
Моя система уже знает адреса электронной почты пользователей. Когда пользователь регистрируется, он получает сообщение об ошибке от allauth:
На этот адрес электронной почты уже зарегистрирован пользователь.
Я советую пользователям сбросить пароль, когда они видят это сообщение. Однако после сброса пароля allauth запускает поток подтверждения адреса электронной почты, поскольку ACCOUNT_EMAIL_VERIFICATION = True
.
Пользователю неудобно и необязательно проводить проверку электронной почты в этот момент. Как я могу избежать проверки электронной почты в этом сценарии?
Если вы знаете, что у пользователя может быть только один адрес электронной почты, связанный с ним на момент сброса пароля, то вы можете прослушать сигнал сброса пароля и отметить адрес электронной почты как проверенный. Это не позволит allauth запустить поток проверки электронной почты после сброса пароля.
Например, вы можете поместить следующее в signals.py
:
from django.dispatch import receiver
from allauth.account.models import EmailAddress
from allauth.account.signals import password_reset
@receiver(password_reset)
def auto_verify_email_address_on_password_reset(sender, request, user, **kwargs):
email_address = EmailAddress.objects.get_for_user(user, user.email)
if not email_address.verified:
email_address.verified = True
email_address.save()