Djoser密码重置确认配置求助及完整流程咨询
Djoser 完整密码重置流程配置与问题排查
完整密码重置流程
- 发起重置请求:调用
/u/admin/register/reset_password/接口,传入目标用户邮箱,Djoser生成唯一的uid和token,并发送包含重置链接的邮件到该邮箱。 - 用户跳转重置页面:用户点击邮件中的链接,跳转到配置的
PASSWORD_RESET_CONFIRM_URL对应的前端页面,页面需提供新密码输入框。 - 提交新密码:前端收集新密码后,将
uid、token和新密码一同发送到Djoser的/reset_password_confirm/(或自定义前缀后的对应接口),完成密码重置。
你的配置问题排查
重置链接路径格式错误
你当前的PASSWORD_RESET_CONFIRM_URL配置为u/admin/register/reset_password_confirm/{uid}/{token},缺少开头的/,会导致生成的链接是相对路径,用户从邮箱点击时无法正确跳转到你的网站页面。应修改为:"PASSWORD_RESET_CONFIRM_URL": "/u/admin/register/reset_password_confirm/{uid}/{token}"生产环境下需要加上完整域名,例如:
"PASSWORD_RESET_CONFIRM_URL": "https://your-domain.com/u/admin/register/reset_password_confirm/{uid}/{token}"确认重置确认接口的路由匹配
确保Djoser路由配置中包含重置确认端点,默认情况下Djoser会注册/users/reset_password_confirm/,如果项目自定义了路由前缀,需对应调整前端提交请求的地址。前端页面参数处理
跳转后的前端页面需正确从URL中提取uid和token参数,提交新密码时,将这两个参数与新密码一起发送到重置确认接口,参数名需与Djoser要求一致(默认是uid、token、new_password)。
补充排查方向
如果仍有错误,建议检查:
- 邮件发送时的域名配置,确保链接是完整的绝对路径
- Djoser版本与Django版本的兼容性
- 前端提交请求的方法(需为POST)和参数格式(JSON或表单数据,取决于配置)
内容的提问来源于stack exchange,提问作者zoro
相关产品推荐
相关产品推荐

