我有一个具有 React 前端和 Django api 后端的应用程序。我正在尝试让密码重置页面正常工作,但我不知道如何设置 URL/路由。我让它在本地工作,但我认为这是因为前端和后端的端口在本地不同,所以它们本质上是不同的域。
我的 Django 网址模式包括:
path('api/v1/dj-rest-auth/password/reset/confirm/<uidb64>/<token>/', PasswordResetConfirmView.as_view(), name='password_reset_confirm')
我的 Django url 中有一个包罗万象的 url,以使其余的前端工作。
我的 React 路由器包括:
<Route path="/api/v1/dj-rest-auth/password/reset/confirm/:uid/:token/" component={ResetPassword} />
我的 React 密码重置页面包含:
let url = process.env.REACT_APP_API_PATH + '/api/v1/dj-rest-auth/password/reset/confirm/' + this.props.match.params.uid + '/' + this.props.match.params.token + '/';
let headers = {token: this.props.match.params.token,
uid: this.props.match.params.uid,
new_password1: this.state.newPassword,
new_password2: this.state.newPasswordConf
}
axios
.post(url, headers)
这会从密码重置链接获取令牌和 uid,然后将它们与用户的新密码一起发送到密码重置端点。
困境似乎是,我需要通过 React 访问重置链接才能获取令牌和 uid,但随后我需要访问与 API 调用相同的链接才能重置密码。