Skip to content

feat: 补齐找回密码接口 #154

Description

@huyanxius

问题

/auth/send-codeSendCodeRequest.purpose 允许三种取值,正则为 ^(login|register|reset_password)$,其中 reset_password 没有任何端点消费。用户可以申请一封重设密码的验证码邮件,但拿到验证码之后无处使用。

现有的 /auth/change-password 要求提供旧密码,忘记密码的用户恰好给不出旧密码。因此目前账号一旦忘记密码即无法恢复。

目标

提供邮箱加验证码重设密码的完整路径,使 reset_password 这个 purpose 有对应的落点。

范围

一个重设密码端点,以及重设成功后对既有会话的处理。

明确排除:短信验证码、密保问题、管理员代为重置、第三方账号找回。

验收标准

  • 提交邮箱、reset_password 用途的有效验证码与新密码,密码被重设,新密码可登录。
  • 新密码沿用注册时的长度约束(8 到 128 位)。
  • 验证码错误、过期或用途不匹配时拒绝,返回业务码而非 HTTP 错误。
  • 重设成功后该用户既有的 refresh token 全部失效。
  • 该端点纳入敏感接口限流名单。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions