sdlan/Register.md
2026-03-20 10:59:50 +08:00

3.7 KiB
Raw Blame History

注册流程

1. 发送验证码

url: /register/sendVerfiyCode
method: POST
params: {
    username: $username,
    account_type: "email|phone_num"
}

result: 
    success: {code: 0, data: {"session_id": int}}
    error: {code: -1, message: "操作失败"}    

2. 提交验证码

url: /register/verfiyCode
method: POST
params: {
    session_id: $session_id,
    code: int
}

result: 
    success: {code: 0, data: "ok"}
    error: {code: -1, message: "验证码错误"}  

3. 注册

url: /register/submit
method: POST
params: {
    session_id: $session_id,
    password: $password
}

result: 
    success: {code: 0, data: "ok"}
    error: {code: -1, message: "注册失败"}

找回密码流程

1. 发送验证码

url: /password/sendVerfiyCode
method: POST
params: {
    username: $username,
    account_type: "email|phone_num"
}

result: 
    success: {code: 0, data: {"session_id": int}}
    error: {code: -1, message: "操作失败"}    

2. 提交验证码

url: /password/verfiyCode
method: POST
params: {
    session_id: $session_id,
    code: int
}

result: 
    success: {code: 0, data: "ok"}
    error: {code: -1, message: "验证码错误"}  

3. 重置

url: /password/reset
method: POST
params: {
    session_id: $session_id,
    new_password: $new_password
}

result: 
    success: {code: 0, data: "ok"}
    error: {code: -1, message: "注册失败"}

注册和找回密码公用的session的结构

    session:
    {
    session_id,
    username,
    code,
    verified,
    expire_at,
    used
    }

    ✅ 3. 必须有过期时间

    建议:

    验证码5分钟

    session10分钟

    ✅ 4. 限流(强烈建议)
    sendVerifyCode

    每个 username60 秒一次

    每个 IP限制

    ✅ 5. 防枚举(重要)

    错误返回统一:

    "操作失败"

    不要区分:

    用户存在

    用户不存在

app相关的接口

1. 检查版本

url: /app/checkUpdate
method: POST

params: {
    app_id: "your_app",           // 应用标识
    platform: "macos",            // 平台
    version: "1.2.3",             // 当前版本
    build: 123,                   // 构建号(非常重要)
    channel: "appstore|direct",   // 渠道(可选)
}

result:
    success: {
        code: 0,
        data: {
            has_update: true,
            latest_version: "1.3.0",
            latest_build: 150,
            
            force_update: false,
            
            download_url: "https://xxx.com/app.pkg",
            release_notes: "修复了一些问题",
            
            min_supported_version: "1.0.0",
            
            publish_time: 1710000000
        }
    }

    error: {
        code: -1,
        message: "检查失败"
    }

2. app当前隐私政策和服务条款

url: /app/policies
method: POST
params: {
    platform: "macos"
}

result: 
{
    code: 0,
    data: {
        privacy_policy_url: "https://xxx.com/privacy",
        terms_of_service_url: "https://xxx.com/terms",
        
        privacy_policy_version: "2026-01-01",
        terms_version: "2026-01-01"
    }
}

3. 用户反馈

url: /app/issue
method: POST
params: {
    username: $username,
    // 联系方式
    contact: $contact,
    platform: "macos",
    content: $content
}

result: 
{
    code: 0,
    data: "ok"
}