电子邮件验证和密码重置 - django rest 框架和 angularjs



如何在django.rest.auth中实现用于密码重置的内置视图,以及如何使用django rest框架和angularjs创建用于注册的电子邮件验证系统?

我一直在寻找一个教程或一些很好的文档,介绍如何使用 django rest 框架和angular js 在网站上实现 django 的 send_email 函数,但我找不到任何内容。

我需要什么...

  • 当新用户注册时,必须为他们生成一个 URL 以确认其电子邮件地址
  • 此 URL 必须自动发送到用户给定的电子邮件
  • 将用户发送到此链接并确认其电子邮件地址后,其状态必须从 new_user.is_active = False 更改为 new_user.is_active = True

我有什么...

  • 向我的注册端点发送 POST 请求的注册表单
    • 然后,新用户数据将被解压缩、验证并保存在"我的注册"视图中
  • settings.py 我添加了这个...

    EMAIL_USE_TLS = True
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_HOST_USER = 'myemail@gmail.com'
    EMAIL_HOST_PASSWORD = 'mypassword'
    EMAIL_PORT = 587
    
  • 在我的 urls.py 中,我添加了这个...

    from django.conf.urls import url
    from rest_auth.views import PasswordResetView, PasswordResetConfirmView
    urlpatterns = [
    url(r'^password/reset/$', PasswordResetView.as_view(), name='password_reset'),
    url(r'^password/reset/confirm/$', PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
    ]
    

所以我的问题是如何将这些视图和 url 实现到我的项目中,以及如何使用from django.core.mail import send_mail创建电子邮件确认

提前致谢

用户填写注册表后,您可以要求提供验证码。此验证码将发送到注册表中提供的电子邮件地址。正确输入验证码后,您可以将用户设置为活动状态。

对于仍在寻找解决方案的人来说,django-allauth 是一个不错的选择。 您可以覆盖PASSWORD_RESET_CONFIRM_SERIALIZER以使用户处于活动状态。

最新更新