django-rest-auth 重置密码 uid 和 token
django-rest-auth reset password uid and token
我们的团队在后端使用 django-rest-api 开发项目并在前端做出反应。
对于身份验证,我们使用 django-rest-auth,但密码重置有问题。
这里 urls:
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 的请求被 post 编辑时,用户会收到包含 uid 和令牌的 link 电子邮件。然后用户在反应表单中填写new_password,我们想要post数据:
{
"new_password1": "new_password",
"new_password2": "new_password",
"uid": "",
"token": ""
}
到/rest-auth/password/reset/confirm/。
我们如何在前端获取此 uid 和令牌,用于在此 url 上重置确认密码的页面,然后 post 数据以确认密码更改?
您应该配置您的 React 路由器以获取 params from url。例如,
<Route path="reset/:uid/:token" component={PasswordResetView}/>
然后在您的 React 视图中,您可以获得这些值,例如 this.props.params.uid
和 this.props.params.token
。
我们的团队在后端使用 django-rest-api 开发项目并在前端做出反应。 对于身份验证,我们使用 django-rest-auth,但密码重置有问题。 这里 urls:
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 的请求被 post 编辑时,用户会收到包含 uid 和令牌的 link 电子邮件。然后用户在反应表单中填写new_password,我们想要post数据:
{
"new_password1": "new_password",
"new_password2": "new_password",
"uid": "",
"token": ""
}
到/rest-auth/password/reset/confirm/。
我们如何在前端获取此 uid 和令牌,用于在此 url 上重置确认密码的页面,然后 post 数据以确认密码更改?
您应该配置您的 React 路由器以获取 params from url。例如,
<Route path="reset/:uid/:token" component={PasswordResetView}/>
然后在您的 React 视图中,您可以获得这些值,例如 this.props.params.uid
和 this.props.params.token
。