chore: remove wechat remnants

This commit is contained in:
2026-01-17 21:06:02 +08:00
parent 1419bd9bd0
commit 79146434a8
18 changed files with 46 additions and 114 deletions

View File

@@ -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>`
ResponseJS-SDK 签名数据(结构按前端 `weixin-js-sdk` 需要输出)
---
## 3. Admin租户后台
### 3.1 登录

View File

@@ -1,8 +1,8 @@
# 新项目 PRD多租户 + 微信登录/分享 + 余额支付)
# 新项目 PRD多租户 + OTP 登录 + 余额支付)
## 当前实现说明
- 认证方式已切换为 OTP + JWTWeChat 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 → 401XHR或 302 → `/t/:tenant/v1/auth/wechat?redirect=...`
2) `/auth/wechat` 生成微信授权地址(回调到 `/t/:tenant/v1/auth/login` 并透传 redirect
3) `/auth/login` 换取 openid + 用户信息,按 `(tenant_id, open_id)` 获取或创建用户,签发会话 tokencookie
1) 未登录请求 API → 401XHR,前端引导到登录页
2) `/auth/otp` 发送验证码
3) `/auth/login` 使用手机号 + OTP 换取 JWT并在前端保存
### 4.3 播放策略(预览/完整版)

View File

@@ -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 登录,无第三方授权回调
---