django-rest-auth重置密码uid和令牌

时间:2016-11-23 16:05:14

标签: django authentication token django-rest-auth

我们的团队在后端使用django-rest-api进行项目,并在前端做出反应。 对于身份验证,我们使用django-rest-auth,我们遇到密码重置问题。 在这里网址:

urlpatterns += [
   url(r'^accounts/', include('allauth.urls')),
   url(r'^admin/', include(admin.site.urls)),
   url(r'^api/', include('api.urls')),
   url(r'^rest-auth/', include('rest_auth.urls')),
   url(r'^rest-auth/registration/', include('rest_auth.registration.urls')),
   url(
       r'^rest-auth/password/reset/$',
       PasswordResetView.as_view(),
       name='password_reset',
   ),
   url(r'^rest-auth/password/reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
       PasswordResetConfirmView.as_view(),
       name='password_reset_confirm'),
   url(
       r'^rest-auth/registration/account-confirm-email/(?P<key>[-:\w]+)/$',
       confirm,
       name="account_confirm_email"
   ),
   url(r'^', include('core.urls', namespace='core')),
]

当发布对password_reset的请求时,用户会收到包含uid和token的链接的电子邮件。然后用户以反应形式填写new_password,我们想要发布数据:

{
   "new_password1": "new_password",
   "new_password2": "new_password",
   "uid": "",
   "token": ""
}

到/ rest-auth / password / reset / confirm /。

我们如何在此网址上为确认密码重置的make页面获取此uid和令牌,然后发布数据以确认更改密码?

1 个答案:

答案 0 :(得分:5)

您应该配置您的反应路由器以获取params from url。例如,

<Route path="reset/:uid/:token" component={PasswordResetView}/>

然后在您的反应视图中,您可以获得this.props.params.uidthis.props.params.token等值。