forked from wangziqi/gongxue-base
feat: add china auth providers
This commit is contained in:
@@ -129,7 +129,7 @@ tenant:<tenantId>:theme
|
||||
| 页面 | 主要接口 |
|
||||
| --- | --- |
|
||||
| 启动页 | `GET /api/tenant/resolve` |
|
||||
| 登录页 | `POST /api/auth/sms/send`、`POST /api/auth/sms/verify`、后续微信/QQ provider |
|
||||
| 登录页 | `POST /api/auth/sms/send`、`POST /api/auth/sms/verify`、`POST /api/auth/oauth/wechat-miniapp`、后续微信网页/QQ provider |
|
||||
| 首页 | `/api/catalog/content-entries`、`/api/catalog/banners`、`/api/catalog/announcements`、`/api/profile/me` |
|
||||
| 选地区 | `/api/catalog/regions`、`/api/commerce/entitlements/check` |
|
||||
| 题库入口 | `/api/catalog/content-entries` |
|
||||
@@ -182,6 +182,69 @@ content_entries
|
||||
- 管理后台菜单按 `GET /api/tenant-admin/permissions` 和用户权限渲染。
|
||||
- H5 自定义域名下要注意缓存隔离,不能把 A 租户主题缓存用到 B 租户。
|
||||
|
||||
## 登录对接
|
||||
|
||||
### 短信登录
|
||||
|
||||
开发环境可以先使用 mock 短信,接口会返回 `debugCode`。生产环境禁止依赖 `debugCode`。
|
||||
|
||||
```text
|
||||
POST /api/auth/sms/send
|
||||
body: { "phone": "13800000000", "purpose": "login" }
|
||||
|
||||
POST /api/auth/sms/verify
|
||||
body: { "phone": "13800000000", "code": "123456", "purpose": "login" }
|
||||
```
|
||||
|
||||
成功后保存:
|
||||
|
||||
```text
|
||||
session.token
|
||||
session.expiresAt
|
||||
user
|
||||
```
|
||||
|
||||
后续请求统一带:
|
||||
|
||||
```text
|
||||
Authorization: Bearer <session.token>
|
||||
x-tenant-id: <tenantId>
|
||||
```
|
||||
|
||||
### 微信小程序登录
|
||||
|
||||
微信小程序端调用 `Taro.login()` 获取 code,然后交给后端:
|
||||
|
||||
```text
|
||||
POST /api/auth/oauth/wechat-miniapp
|
||||
body: {
|
||||
"code": "<wx.login code>",
|
||||
"profile": {
|
||||
"nickName": "...",
|
||||
"avatarUrl": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
成功响应包含:
|
||||
|
||||
```text
|
||||
provider
|
||||
user
|
||||
isNewUser
|
||||
session.token
|
||||
session.expiresAt
|
||||
identity.openId
|
||||
identity.unionId
|
||||
```
|
||||
|
||||
注意:
|
||||
|
||||
- 前端不接触 `appSecret`。
|
||||
- 前端不会拿到微信 `session_key`。
|
||||
- 如果登录前已经解析到推广码,登录成功后再调用 `/api/referral/bind` 完成首绑保护。
|
||||
- 手机号授权后续应走独立的“绑定手机号”接口,不要把微信手机号解密逻辑写在页面里。
|
||||
|
||||
## 第一阶段页面建议
|
||||
|
||||
1. `pages/bootstrap/index`
|
||||
|
||||
Reference in New Issue
Block a user