背景
https://github.com/halo-dev/halo/issues/5556流程图
sequenceDiagram
participant 用户
participant 前端界面
participant 后端服务
participant 邮件服务
participant 数据库
用户->>前端界面: 点击"忘记密码"
前端界面->>后端服务: 提交邮箱地址
后端服务->>后端服务: 生成重置令牌
后端服务->>邮件服务: 发送含重置链接的邮件
邮件服务-->>用户: 接收密码重置邮件
用户->>邮件服务: 点击重置链接
邮件服务->>前端界面: 跳转到密码重置页(带token)
前端界面->>后端服务: 提交新密码和令牌
后端服务->>后端服务: 解密令牌
后端服务->>数据库: 验证邮箱是否存在
alt 邮箱存在
后端服务->>数据库: 更新用户密码
后端服务-->>前端界面: 返回成功消息
前端界面-->>用户: 显示密码重置成功
else 邮箱不存在
后端服务-->>前端界面: 返回"账户不存在"
前端界面-->>用户: 提示用户邮箱未注册
end