189 lines
3.7 KiB
Markdown
189 lines
3.7 KiB
Markdown
# 注册流程
|
||
|
||
## 1. 发送验证码
|
||
url: /register/sendVerfiyCode
|
||
method: POST
|
||
params: {
|
||
username: $username,
|
||
}
|
||
|
||
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,
|
||
}
|
||
|
||
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分钟
|
||
|
||
session:10分钟
|
||
|
||
✅ 4. 限流(强烈建议)
|
||
sendVerifyCode
|
||
|
||
每个 username:60 秒一次
|
||
|
||
每个 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"
|
||
} |