【问题标题】:Django Password Reset using Rest API使用 Rest API 重置 Django 密码
【发布时间】:2018-01-01 14:13:27
【问题描述】:

我们的团队在后端使用 django-rest-api 并在前端使用 angular-2 进行项目。我们有密码重置问题。这里的网址:

from django.contrib.auth import views as auth_views
urlpatterns = patterns(
'',
url(r'^password_reset/$', auth_views.password_reset, name='password_reset'),

url(r'^password_reset/done/$', auth_views.password_reset_done, name='password_reset_done'),

url(r'^reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',auth_views.password_reset_confirm, name='password_reset_confirm'),

url(r'^reset/done/$', auth_views.password_reset_complete, name='password_reset_complete'),
)

发布密码重置请求时,用户会收到包含密码重置令牌链接的电子邮件。 令牌的到期时间应在 24 小时内。

想做密码重置api,所以我们可以使用postman修改密码,前端开发者也可以使用这个api。

【问题讨论】:

  • 太大了。您必须维护一个表,然后您必须有一个视图来处理发送邮件以重置密码。

标签: django django-rest-framework token django-authentication


【解决方案1】:

您可以按照这些基本步骤进行操作 -

1) UI - Press reset password
2) UI - Type Email Id for verify (token will go to this ID)
   a) Backend -  Get email and verify/authenticate it
   b) Generate a token [ you can use from drive.utils import 
      get_random_number ]
           1) Save in DB - Token code, Email , Date(+1 day)
   c) Send Email with Token
   d) render to new html with email id 
     return render(request, 'forgot_password.html', {'email': email})     
3) UI - GET token code from user  ( pass email (from above) along with 
   code)
   a) verify code and check if its expire (current date < code date)
   b) if verified render to change password page (pass email)
4) UI - GET New Password from user (email from above)
   a) change password 

【讨论】:

  • 嗨@Vicamathur,我已经按照每个步骤进行操作,但现在卡在“pint 4) a) 更改密码”你能告诉我如果我有 users_email 和新密码,我该如何更改用户的密码我想为用户设置。
  • 在 django 中,您必须使用 set_password() 函数为 Auth 用户设置密码,您不能执行 user.password = "new password" ,您必须使用 user.set_password("new password")比你必须做的 user.save() 和 user = User.objects.get(email = user_email)
猜你喜欢
  • 2019-01-08
  • 2019-05-25
  • 2020-05-21
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-07
  • 2018-06-04
相关资源
最近更新 更多