适用场景
设计登录模块、写接口文档、做课程设计或毕业设计的「用户登录时序图」时使用。图里有三处容易漏的细节:发送前先查频率、验证码带有效期、验证成功后立刻删除,评审时常被问到。
怎么改成你的
- 首次登录自动注册的,在验证码正确的分支里加「用户不存在则创建账号」。
- 加了图形验证码或滑块的,在请求发送验证码之前插入对应的消息。
- 有效期、频率限制的具体数值按你的安全策略改。
Mermaid 代码
sms-login-sequence.mmd
sequenceDiagram
actor U as 用户
participant C as 客户端
participant A as 认证服务
participant R as 缓存
participant S as 短信网关
U->>C: 输入手机号并点获取验证码
C->>A: 请求发送验证码
A->>R: 检查发送频率
R-->>A: 未超限
A->>R: 保存验证码 5 分钟有效
A->>S: 下发短信
S-->>U: 收到验证码
A-->>C: 发送成功
U->>C: 输入验证码并登录
C->>A: 提交手机号与验证码
A->>R: 读取并比对验证码
alt 验证码正确
A->>R: 删除验证码
A-->>C: 返回登录令牌
C-->>U: 进入首页
else 验证码错误或过期
A-->>C: 返回错误并累计次数
C-->>U: 提示重新输入
end让 AI 按这个结构生成一份
把下面这段发给豆包、DeepSeek、Kimi 或元宝,再把它的回复整段粘贴到编辑器,会自动识别其中的代码。
prompt.txt
请用 Mermaid 的 sequenceDiagram 语法画一张短信验证码登录时序图:参与者有用户、客户端、认证服务、缓存、短信网关;先是获取验证码:认证服务检查发送频率、保存验证码并设置有效期、调用短信网关下发;然后是登录:客户端提交手机号与验证码,认证服务读取并比对;用 alt 分两种情况,验证码正确则删除验证码并返回登录令牌,错误或过期则返回错误并累计次数。只输出 mermaid 代码块。
常见问题
- alt 和 else 是什么意思?
alt表示分情况,else是另一种情况,end结束。图上会画成一个带标题的框,上下两格分别是两种情况。- 需要把数据库也画进去吗?
如果要体现查询或创建用户,可以再加一个「用户库」参与者。参与者太多时图会变宽,只画评审关心的。
- 验证码该设几位、有效多久?
这属于安全策略,请结合业务风险和相关规范确定。图里的 5 分钟只是示例。
同类模板
更新于 2026-11-11