您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django AllAuth - 如何手动发送重置密码电子邮件?

Django AllAuth - 如何手动发送重置密码电子邮件?

这是可能的。我的解决方案实现了一个用户模型post_save信号来调用 Allauth密码重置视图,该视图将向用户发送电子邮件。首先 要考虑的是使用户的电子邮件地址的管理员强制用户创建形式(如解释在这里)。然后使用以下代码

from allauth.account.views import PasswordResetView

from django.conf import settings
from django.dispatch import receiver
from django.http import HttpRequest
from django.middleware.csrf import get_token


@receiver(models.signals.post_save, sender=settings.AUTH_USER_MODEL)
def send_reset_password_email(sender, instance, created, **kwargs):

    if created:

        # First create a post request to pass to the view
        request = HttpRequest()
        request.method = 'POST'

        # add the absolute url to be be included in email
        if settings.DEBUG:
            request.Meta['HTTP_HOST'] = '127.0.0.1:8000'
        else:
            request.Meta['HTTP_HOST'] = 'www.mysite.com'

        # pass the post form data
        request.POST = {
            'email': instance.email,
            'csrfmiddlewaretoken': get_token(HttpRequest())
        }
        PasswordResetView.as_view()(request)  # email will be sent!
Go 2022/1/1 18:30:21 有322人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶