chore: remove wechat remnants
This commit is contained in:
15
specs/API.md
15
specs/API.md
@@ -24,7 +24,7 @@
|
||||
|
||||
### 0.4 当前实现说明
|
||||
|
||||
- 当前端到端实现已切换为 OTP + JWT;以下 WeChat OAuth/H5 内容为历史规格,待后续统一重写
|
||||
- 当前实现以 OTP 登录 + JWT 认证为准;本文仅保留已落地接口说明
|
||||
|
||||
---
|
||||
|
||||
@@ -50,7 +50,7 @@ Body:
|
||||
|
||||
---
|
||||
|
||||
## 2. WeChat H5 内容与用户
|
||||
## 2. Portal 用户端内容与用户
|
||||
|
||||
### 2.1 曲谱列表(仅已发布)
|
||||
|
||||
@@ -75,8 +75,7 @@ Response(示例结构):
|
||||
"likes": 0,
|
||||
"tags": ["tag"],
|
||||
"head_images": ["https://signed-url..."],
|
||||
"bought": false,
|
||||
"recharge_wechat": "联系微信(可选)"
|
||||
"bought": false
|
||||
}
|
||||
],
|
||||
"total": 123,
|
||||
@@ -141,14 +140,6 @@ Body:
|
||||
|
||||
约束:trim 后不能为空;最大 12 个字符(按 rune 计)。
|
||||
|
||||
### 2.8 JS-SDK 配置
|
||||
|
||||
`GET /wechats/js-sdk?url=<current_page_url_without_hash>`
|
||||
|
||||
Response:JS-SDK 签名数据(结构按前端 `weixin-js-sdk` 需要输出)
|
||||
|
||||
---
|
||||
|
||||
## 3. Admin(租户后台)
|
||||
|
||||
### 3.1 登录
|
||||
|
||||
21
specs/PRD.md
21
specs/PRD.md
@@ -1,8 +1,8 @@
|
||||
# 新项目 PRD(多租户 + 微信登录/分享 + 余额支付)
|
||||
# 新项目 PRD(多租户 + OTP 登录 + 余额支付)
|
||||
|
||||
## 当前实现说明
|
||||
|
||||
- 认证方式已切换为 OTP + JWT;WeChat OAuth/JS-SDK 暂未落地,保留为规划
|
||||
- 认证方式为 OTP + JWT;不包含第三方 OAuth/JS-SDK
|
||||
- 路由当前使用 `/v1` 前缀,多租户 `/t/:tenant_code` 待统一改造
|
||||
|
||||
## 1. 范围与约束
|
||||
@@ -15,10 +15,10 @@
|
||||
- OSS Key:`quyun/<tenant_uuid>/<md5>.<ext>`
|
||||
- 数据隔离:所有业务表均包含 `tenant_id`,所有查询必须带 `tenant_id` 过滤
|
||||
|
||||
### 1.2 微信能力
|
||||
### 1.2 认证能力
|
||||
|
||||
- 保留:微信网页授权登录(OAuth)、JS-SDK 签名与分享
|
||||
- 移除:微信支付/退款/回调(多租户版本完全不支持,历史也不兼容)
|
||||
- 仅支持:手机 OTP 登录 + JWT
|
||||
- 不包含:第三方 OAuth/JS-SDK 与相关分享能力
|
||||
|
||||
### 1.3 支付能力
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
## 2. 角色与端
|
||||
|
||||
### 2.1 WeChat H5 端(C 端用户)
|
||||
### 2.1 Portal 用户端(C 端用户)
|
||||
|
||||
- 访问曲谱列表、搜索
|
||||
- 查看曲谱详情
|
||||
@@ -43,7 +43,6 @@
|
||||
- 余额购买
|
||||
- 查看已购列表(快速播放)
|
||||
- 查看个人资料与余额
|
||||
- 分享(JS-SDK)
|
||||
|
||||
### 2.2 Admin 管理端(租户运营人员)
|
||||
|
||||
@@ -94,11 +93,11 @@
|
||||
- code 存在且启用
|
||||
- 解析成功后,将 `tenant_id`、`tenant_uuid` 注入到请求上下文
|
||||
|
||||
### 4.2 微信登录
|
||||
### 4.2 OTP 登录
|
||||
|
||||
1) 未登录请求 API → 401(XHR)或 302 → `/t/:tenant/v1/auth/wechat?redirect=...`
|
||||
2) `/auth/wechat` 生成微信授权地址(回调到 `/t/:tenant/v1/auth/login` 并透传 redirect)
|
||||
3) `/auth/login` 换取 openid + 用户信息,按 `(tenant_id, open_id)` 获取或创建用户,签发会话 token(cookie)
|
||||
1) 未登录请求 API → 401(XHR),前端引导到登录页
|
||||
2) `/auth/otp` 发送验证码
|
||||
3) `/auth/login` 使用手机号 + OTP 换取 JWT,并在前端保存
|
||||
|
||||
### 4.3 播放策略(预览/完整版)
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
- 租户前缀:`/t/:tenant_code/`(不区分大小写;服务端统一按 `lower()` 识别)
|
||||
- API:`/t/:tenant_code/v1/...`
|
||||
- Admin SPA:`/t/:tenant_code/admin/...`
|
||||
- WeChat SPA:`/t/:tenant_code/...`(除 `v1` 与 `admin` 子路径)
|
||||
- Portal SPA:`/t/:tenant_code/...`(除 `v1` 与 `admin` 子路径)
|
||||
|
||||
### 1.2 为什么必须这样分层
|
||||
|
||||
- WeChat/后台前端都是 SPA,通常需要一个 catch-all 回退到 `index.html`
|
||||
- Portal/后台前端都是 SPA,通常需要一个 catch-all 回退到 `index.html`
|
||||
- 同时 API 又需要精确匹配,必须确保 API 路由优先于静态路由
|
||||
|
||||
---
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
1) `GET /t/:tenant_code/v1/...`:注册所有 API(并注入 TenantContext 中间件)
|
||||
2) `GET /t/:tenant_code/admin*`:回退到 Admin 的 `index.html`(并正确设置静态资源 base)
|
||||
3) `GET /t/:tenant_code/*`:回退到 WeChat 的 `index.html`
|
||||
3) `GET /t/:tenant_code/*`:回退到 Portal 的 `index.html`
|
||||
|
||||
> 重点:不要用全局 `GET /*` 直接接管,否则会吞掉 API 与 admin。
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 4. 前端(WeChat H5)
|
||||
## 4. 前端(Portal 用户端)
|
||||
|
||||
### 4.1 Router base
|
||||
|
||||
@@ -55,13 +55,12 @@
|
||||
### 4.2 API baseURL 与 Cookie
|
||||
|
||||
- axios `baseURL = "/t/<tenant_code>/v1"`
|
||||
- `withCredentials = true`(历史 WeChat 方案)
|
||||
- 当前实现改为 JWT:`Authorization: Bearer <token>`
|
||||
- 当前实现使用 JWT:`Authorization: Bearer <token>`
|
||||
|
||||
### 4.3 未登录跳转
|
||||
|
||||
- 401 时跳:`/t/<tenant_code>/v1/auth/wechat?redirect=<encodeURIComponent(currentUrl)>`
|
||||
- 当前实现为 OTP 登录,不走微信授权回调
|
||||
- 401 时跳:`/t/<tenant_code>/auth/login?redirect=<encodeURIComponent(currentUrl)>`
|
||||
- 当前实现为 OTP 登录,无第三方授权回调
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user