forked from xiaohei/taiji-AI-PAD
3.8 KiB
3.8 KiB
忘记密码接口文档
概述
本文档描述用户侧忘记密码功能的 API 接口,供前端对接使用。
接口列表
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 发送验证码 | POST | /api/auth/forgot-password/send-code |
发送密码重置验证码到邮箱 |
| 重置密码 | POST | /api/auth/forgot-password/reset |
验证验证码并重置密码 |
1. 发送密码重置验证码
请求
POST /api/auth/forgot-password/send-code
Content-Type: application/json
入参
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| string | 是 | 注册时使用的邮箱地址 |
请求示例
{
"email": "user@example.com"
}
出参
成功响应 (200)
{
"success": true,
"data": null,
"message": "验证码已发送到您的邮箱,请查收"
}
错误响应
| HTTP 状态码 | 错误信息 | 说明 |
|---|---|---|
| 404 | 该邮箱未注册 | 邮箱不存在 |
| 429 | 请等待X秒后再重新发送验证码 | 发送频率限制(60秒内只能发送一次) |
| 500 | 验证码发送失败,请稍后重试 | 服务器错误 |
2. 重置密码
请求
POST /api/auth/forgot-password/reset
Content-Type: application/json
入参
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| string | 是 | 注册时使用的邮箱地址 | |
| verification_code | string | 是 | 6位数字验证码 |
| new_password | string | 是 | 新密码,至少8个字符 |
请求示例
{
"email": "user@example.com",
"verification_code": "123456",
"new_password": "newPassword123"
}
出参
成功响应 (200)
{
"success": true,
"data": null,
"message": "密码重置成功,请使用新密码登录"
}
错误响应
| HTTP 状态码 | 错误信息 | 说明 |
|---|---|---|
| 400 | 验证码错误或已过期 | 验证码无效 |
| 404 | 该邮箱未注册 | 邮箱不存在 |
| 422 | 验证错误 | 参数格式不正确(如密码少于8位) |
前端对接流程
┌─────────────────┐
│ 忘记密码页面 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ 输入邮箱地址 │
└────────┬────────┘
│
▼
┌─────────────────┐ POST /api/auth/forgot-password/send-code
│ 点击发送验证码 │ ──────────────────────────────────────────────►
└────────┬────────┘
│
▼
┌─────────────────┐
│ 输入验证码 │
│ 输入新密码 │
└────────┬────────┘
│
▼
┌─────────────────┐ POST /api/auth/forgot-password/reset
│ 点击重置密码 │ ──────────────────────────────────────────────►
└────────┬────────┘
│
▼
┌─────────────────┐
│ 跳转到登录页面 │
└─────────────────┘
注意事项
- 验证码有效期: 10 分钟
- 发送频率限制: 同一邮箱 60 秒内只能发送一次
- 密码要求: 至少 8 个字符
- 验证码格式: 6 位数字
- 验证码使用后自动失效: 重置成功后验证码立即失效,无法重复使用