电子邮件验证和密码重置 - Django Rest Framework和AngularJS

8
我该如何在django.rest.auth中实现内置的密码重置视图?以及如何使用django rest framework和angularjs创建一个注册邮箱验证系统?
我一直在寻找一个关于如何在django rest框架和angular js中使用django的send_email函数的教程或文档,但我还没有找到。
我的需求如下:
- 当新用户注册时,必须为他们生成一个URL以确认其电子邮件地址。 - 必须将此URL自动发送到用户提供的电子邮件中。 - 用户跳转到此链接并确认其电子邮件地址后,其状态必须从new_user.is_active = False更改为new_user.is_active = True。
我目前拥有的内容如下:
  • registration form that sends a post request to my register endpoint
    • the new user data is then unpacked, validated, and saved in my register view
  • in settings.py i have added this...

    EMAIL_USE_TLS = True
    
    EMAIL_HOST = 'smtp.gmail.com'
    
    EMAIL_HOST_USER = 'myemail@gmail.com'
    
    EMAIL_HOST_PASSWORD = 'mypassword'
    
    EMAIL_PORT = 587
    
  • in my urls.py i have added this...

    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创建电子邮件确认。

提前感谢。


1
可能是如何使用内置的密码重置/更改视图与自己的模板的重复问题。 - Arpit Solanki
https://dev59.com/BGAf5IYBdhLWcg3wMwM9 - Arpit Solanki
2个回答

0

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


0

对于仍在寻找解决方案的人,django-allauth 是一个不错的选择。你可以重载 PASSWORD_RESET_CONFIRM_SERIALIZER 以使用户处于激活状态。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接