标签: Curor

  • 🚀3分钟画流程图!AI+绘图神器CP💥学完老板跪求教程!

    🚀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. 交互原型与规则**  
    - **登录页布局**(优先级顺序):  
      ![登录页原型](https://via.placeholder.com/800x400?text=第三方登录+验证码+账号密码+SSO入口)  
      - 第三方图标按微信→钉钉→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上帝视角👼
    再也不用边画图边骂排版了!