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

oka*_*kay 5 authentication django 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')),
]
Run Code Online (Sandbox Code Playgroud)

发布对password_reset的请求后,用户会收到包含链接的链接,其中包含uid和令牌。然后,用户以react形式填写new_password,我们要发布数据:

{
   "new_password1": "new_password",
   "new_password2": "new_password",
   "uid": "",
   "token": ""
}
Run Code Online (Sandbox Code Playgroud)

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

我们如何才能在前端的Make页面上获取此uid和令牌,并在此url上重置确认密码,然后发布数据以确认密码更改?

Sag*_*gar 6

您应该配置您的react路由器以从url获取参数。例如

<Route path="reset/:uid/:token" component={PasswordResetView}/>
Run Code Online (Sandbox Code Playgroud)

然后,在您的React视图中,您可以得到像this.props.params.uid和这样的值this.props.params.token