sdlan/Register.md
2026-03-20 10:58:23 +08:00

191 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 注册流程
## 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的结构
```text
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"
}