🚀3分钟画流程图!AI+绘图神器CP💥学完老板跪求教程!
“朋友,又在熬夜改第8版流程图?🤯”
晚上9点🌙盯着被业务方打回的文档,谁不想把文字”biu~”变成流程图?
作为被UML暴击999次的产品狗🐶今天手把手教你这套王炸组合——
【DeepSeek对话生成+Mermaid自动绘图】💡实测3分钟把需求文档变标准流程图❗
🛠️保姆级教程(手残党友好版)
1️⃣ AI生成XML文件
🔹把产品文档丢进DeepSeek对话框

### 产品需求文档(PRD):用户登录模块设计
---
#### **1. 需求背景**
为满足多场景用户身份认证需求,提升用户登录便捷性与系统安全性,需设计支持多方式登录、单点登录及账户管理的统一认证模块,适配Web端、移动端及第三方应用集成场景。
---
#### **2. 功能范围**
- **核心功能**:
- 多方式登录:微信/钉钉/QQ第三方授权、账号密码、短信验证码
- 单点登录(SSO)
- 密码找回与重置
- **辅助功能**:
- 登录态管理(Token有效期、自动续签)
- 风险控制(异常登录检测、设备/IP风控)
- 用户协议与隐私授权
---
#### **3. 详细需求说明**
##### **3.1 多方式登录**
| 登录方式 | 实现逻辑 | 安全要求 |
|---------------|--------------------------------------------------------------------------|-----------------------------------|
| **微信/钉钉/QQ** | 对接开放平台OAuth2.0协议,获取用户唯一标识(UnionID/OpenID)及基础信息 | 强制绑定手机号(首次登录) |
| **账号密码** | 支持6-20位含大小写+特殊字符组合,BCrypt加密存储 | 失败3次触发图形验证码 |
| **短信验证码** | 对接运营商服务,验证码5分钟有效期,同手机号60秒限频 | 单日发送上限5次,IP/设备频控 |
##### **3.2 单点登录(SSO)**
- **协议标准**:支持OAuth 2.0、SAML 2.0协议
- **应用场景**:
- 企业内部系统(如ERP、CRM)无缝跳转登录
- 第三方合作伙伴系统共享登录态(需白名单授权)
- **Token管理**:JWT格式,有效期2小时,支持RSA256加密及自动刷新
##### **3.3 密码找回**
1. **身份验证**:
- 已绑定手机/邮箱:短信/邮件验证码验证
- 未绑定安全信息:人工审核(上传身份证+活体检测)
2. **重置流程**:
- 临时链接30分钟有效,强制修改后旧密码失效
- 历史密码不可重复使用(记录最近3次)
---
#### **4. 非功能性需求**
- **性能**:登录接口响应时间≤500ms(P99)
- **安全性**:
- HTTPS传输,敏感字段脱敏(如手机号显示为138****1234)
- 防暴力破解:5分钟内同账号/IP失败10次锁定30分钟
- **兼容性**:
- 微信SDK兼容小程序/公众号/H5
- 钉钉适配企业自建应用与ISV应用
---
#### **5. 交互原型与规则**
- **登录页布局**(优先级顺序):

- 第三方图标按微信→钉钉→QQ顺序排列
- 账号密码/验证码登录可切换Tab
- SSO入口仅对合作域名/IP段显示
- **异常提示**:
```plaintext
# 密码错误
提示:账号或密码错误,剩余尝试次数{X}次(触发图形验证码后提示)
# 风险拦截
提示:检测到非常用设备登录,请通过{已绑定手机号}接收验证码完成安全验证
```
---
#### **6. 数据埋点与监控**
- **核心指标**:
- 登录成功率(分渠道统计)
- 平均登录耗时、SSO跳转耗时
- 密码找回转化率
- **报警规则**:
- 登录接口错误率>1%触发P1告警
- 同一账号1小时内多地登录触发风控通知
---
#### **7. 交付验收标准**
- 通过CSRF、XSS渗透测试(出具第三方安全报告)
- 全渠道登录成功率≥99.5%(压测模拟1000并发)
- 兼容Android/iOS/Windows/MacOS主流版本
---
**PRD附件**:
- [第三方登录OpenAPI文档链接]
- [SSO协议对接示例代码]
- [风控策略详细配置表]
🔹输入咒语:”以上为登录模块,请分析并输出XML流程图”✨
🔹检查XML结构,确保结构满足需求,层次分明,每个节点的name属性要准确描述步骤,condition属性要明确判断条件。同时,子流程的引用要正确,确保流程的连贯性。复制【📋复制】deepseel输出的文件
<process name="UserLoginFlow">
<!-- 登录主流程 -->
<step name="Start" type="start"/>
<step name="LoginMethodSelection" type="decision">
<choice>
<case condition="WeChat">
<subflow name="WeChatLoginFlow"/>
</case>
<case condition="DingTalk">
<subflow name="DingTalkLoginFlow"/>
</case>
<case condition="QQ">
<subflow name="QQLoginFlow"/>
</case>
<case condition="AccountPassword">
<subflow name="AccountPasswordLoginFlow"/>
</case>
<case condition="SMSVerification">
<subflow name="SMSVerificationLoginFlow"/>
</case>
</choices>
</step>
<!-- 第三方登录公共流程 -->
<subflow name="ThirdPartyLoginCommon">
<step name="OpenPlatformAuth" type="action">调用对应SDK获取OpenID/UnionID</step>
<step name="CheckBindingStatus" type="decision">
<choice>
<case condition="Bound">
<step name="GenerateSessionToken" type="action">生成JWT Token并设置Cookie</step>
<step name="RedirectToHomepage" type="action">跳转至用户中心</step>
</case>
<case condition="Unbound">
<subflow name="BindPhoneNumberFlow"/>
</case>
</choices>
</step>
</subflow>
<!-- 账号密码登录流程 -->
<subflow name="AccountPasswordLoginFlow">
<step name="InputCredentials" type="action">输入账号密码</step>
<step name="ValidateCredentials" type="action">验证用户名密码(BCrypt比对)</step>
<step name="PasswordErrorHandling" type="decision">
<choice>
<case condition="Success">
<subflow name="ThirdPartyLoginCommon"/>
</case>
<case condition="Failure">
<step name="IncrementFailedCount" type="action">记录登录失败次数</step>
<step name="CheckLockoutPolicy" type="decision">
<case condition="ExceededAttempts">
<step name="ShowCaptcha" type="action">显示图形验证码</step>
</case>
<case condition="StillValid">
<step name="PromptRetry" type="action">提示重新输入</step>
</case>
</step>
</case>
</choices>
</step>
</subflow>
<!-- 短信验证码登录流程 -->
<subflow name="SMSVerificationLoginFlow">
<step name="RequestVerificationCode" type="action">发送短信验证码至绑定手机号</step>
<step name="InputVerificationCode" type="action">输入收到的验证码</step>
<step name="ValidateSMSCode" type="action">校验验证码有效性</step>
<step name="ProceedToLogin" type="action">调用ThirdPartyLoginCommon子流程</step>
</subflow>
<!-- 密码找回流程 -->
<subflow name="PasswordRecoveryFlow">
<step name="InitiateRecovery" type="action">展示找回密码页面</step>
<step name="SelectIdentityMethod" type="decision">
<choice>
<case condition="RegisteredPhone">
<subflow name="SMSVerificationForRecovery"/>
</case>
<case condition="RegisteredEmail">
<subflow name="EmailVerificationForRecovery"/>
</case>
<case condition="ManualAudit">
<step name="UploadIDDocuments" type="action">上传身份证件照片</step>
<step name="LiveIDCheck" type="action">活体检测验证</step>
</case>
</choices>
</step>
<step name="ResetPassword" type="action">生成临时密码并发送至用户</step>
<step name="UpdatePassword" type="action">引导用户设置新密码</step>
</subflow>
<!-- 单点登录(SSO)流程 -->
<subflow name="SSOLoginFlow">
<step name="ReceiveSSORequest" type="action">解析传入的OAuth2.0/SAML参数</step>
<step name="ValidateSSOToken" type="action">验证Token签名与有效期</step>
<step name="QueryUserProfile" type="action">调用用户信息接口获取数据</step>
<step name="EstablishSession" type="action">创建跨域Session并设置Cross-Origin Cookie</step>
<step name="RedirectToTargetApp" type="action">跳转至目标系统首页</step>
</subflow>
<!-- 终止节点 -->
<step name="End" type="end"/>
</process>
2️⃣ 将xml文件复制到Curor转换为可视化流程代码

3️⃣ 打开mermaid官网,👉https://mermaid.live
🔸在code中复制 Curor生成的流程代码文件

🔸系统自动生成可视化流程图架构图🗺️
🔸微调细节,点击一键下载,收工!🎉


💡使用体验
最爽的不是省时间⏳
而是突然get上帝视角👼
再也不用边画图边骂排版了!