首页 > 解决方案 > 如何使用 Django 中的确认码更新电子邮件地址?

问题描述

我使用dj-rest-auth的所有功能来注册、登录、确认电子邮件地址、更改密码、重置密码等等。不幸的是,图书馆不支持更改电子邮件地址。我希望经过身份验证的用户首先输入帐户密码和新的电子邮件地址。验证成功后,我想向用户发送一个专门生成的确认码。只有当他输入时,旧的电子邮件地址才会更改为新的。据我所知,在dj-rest-auth. 不幸的是,我也没有在任何地方找到任何用于此目的的当前解决方案或库。有没有人有这样的问题,可以在这里分享他的解决方案?先感谢您。

标签: pythondjangodjango-rest-frameworkdjango-allauthdjango-rest-auth

解决方案


虽然我对你想要的东西没有任何解决方案,但这是一个替代品。您可以使用 django all-auth 和一些电子邮件后端向新添加的电子邮件发送电子邮件以确认新电子邮件。在发送的电子邮件中,将有一个确认链接,用户必须单击该链接以确认新电子邮件。使用 django all-auth 后,您只需添加一个电子邮件后端,这将有助于发送电子邮件。其余部分将由 all-auth 维护。例如,在您的 settings.py 中,您可以添加 SMTP 电子邮件后端以从您选择的 gmail 帐户发送电子邮件。将这些代码行添加到您的 settings.py 中;

EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = DEFAULT_FROM_EMAIL = 'HOST_EMAIL' #HOST_EMAIL is your email from which you want to send email to the user.
EMAIL_HOST_PASSWORD = 'HOST_PASSWORD' #HOST_PASSWORD is the password of the email you are using as HOST_EMAIL

但是在完成所有这些事情之后,要使其在本地工作,您需要转到您用作 HOST_EMAIL 的 Google 帐户。转到管理谷歌帐户>>安全>>打开不太安全的应用程序。然后,您将能够向用户发送电子邮件。 注意:如果您为您的 google 帐户启用了 2 因素身份验证,则这些步骤将不起作用。这种类型的帐户有一些不同的设置。


推荐阅读