feat: 增强 PocketBase hooks 认证功能
- 更新微信登录、平台注册/登录、资料更新、token 刷新、认证落库等功能,统一使用 openid 作为全平台身份锚点。 - 新增平台用户注册和登录接口,支持手机号和密码认证。 - 实现系统级 token 刷新接口,支持通过微信 code 重新签发 token。 - 新增用户总数查询接口,返回 tbl_auth_users 表中的用户总数。 - 更新 OpenAPI 文档,反映新的接口和数据结构。 - 修改数据库结构,调整字段名称和索引。 - 新增页面示例,展示基本的 HTML 页面结构。
This commit is contained in:
@@ -31,9 +31,11 @@ pocket-base/
|
||||
|
||||
- `POST /api/system/test-helloworld`
|
||||
- `POST /api/system/health`
|
||||
- `POST /api/system/refresh-token`
|
||||
- `POST /api/platform/register`
|
||||
- `POST /api/platform/login`
|
||||
- `POST /api/wechat/login`
|
||||
- `POST /api/wechat/profile`
|
||||
- `POST /api/wechat/refresh-token`
|
||||
|
||||
> 当前自定义路由统一使用 `/api/...` 前缀。
|
||||
|
||||
@@ -43,6 +45,37 @@ pocket-base/
|
||||
- `Open-Authorization` 不是本项目接口定义的 Header,如调试工具里出现,通常是工具全局预设,应删除。
|
||||
- `users_wx_openid` Header 已移除,不再需要客户端额外传递。
|
||||
- 当前用户身份以 PocketBase auth record 中的 `openid` 字段为准。
|
||||
- `openid` 现已定义为**全平台统一身份锚点**:
|
||||
- 微信用户:`openid = 微信 openid`
|
||||
- 平台用户:`openid = 服务端生成的 GUID`
|
||||
- 当前登录/注册成功后返回的 `token` 为 PocketBase 原生 auth token,可直接用于 PocketBase SDK 与本项目 hooks 接口调用。
|
||||
|
||||
## 平台用户与微信用户说明
|
||||
|
||||
### 平台用户
|
||||
|
||||
- 注册接口:`POST /api/platform/register`
|
||||
- 登录接口:`POST /api/platform/login`
|
||||
- 平台用户注册时会自动生成 GUID 并写入 `tbl_auth_users.openid`
|
||||
- 同时写入 `users_idtype = ManagePlatform`
|
||||
- 平台登录对前端暴露为 `users_phone + password`
|
||||
- 服务端内部仍使用 PocketBase 原生 password auth,以确保返回原生 `token`
|
||||
|
||||
### 通用认证能力
|
||||
|
||||
- 刷新 token 接口:`POST /api/system/refresh-token`
|
||||
- 该接口属于系统级通用认证接口,不区分微信用户或平台用户
|
||||
- body 中 `users_wx_code` 允许为空
|
||||
- 服务端会优先验证 `Authorization`:若 token 仍有效,直接续签,不调用微信接口
|
||||
- 仅当 token 失效时,且提供了 `users_wx_code`,才走微信 code 重签流程(逻辑独立于 `/api/wechat/login` 的完整返回)
|
||||
- 若 token 失效且未提供 `users_wx_code`,返回:`token已过期,请上传users_wx_code`
|
||||
- 返回体为精简结构,仅返回新 `token`
|
||||
|
||||
### 微信用户
|
||||
|
||||
- 登录/注册接口:`POST /api/wechat/login`
|
||||
- 微信用户以微信 code 换取微信侧 openid,并写入统一 `tbl_auth_users.openid`
|
||||
- 首次注册时写入 `users_idtype = WeChat`
|
||||
|
||||
## 部署方式
|
||||
|
||||
@@ -126,10 +159,12 @@ PocketBase JSVM 不是 Node.js 运行时:
|
||||
本次变更重点包括:
|
||||
|
||||
- 微信登录链路错误显式返回
|
||||
- 平台用户注册/登录接口补充完成
|
||||
- 刷新 token 接口调整到 system 分类
|
||||
- `recordAuthResponse` 使用空 `authMethod`
|
||||
- active hooks 中移除 `-created` 排序
|
||||
- `users_phone` 索引由唯一改为普通索引
|
||||
- `tbl_auth_users` 以 `openid` 为业务身份锚点
|
||||
- `tbl_auth_users` 以全平台统一 `openid` 为业务身份锚点
|
||||
- auth 集合兼容占位 `email`、随机密码与 `passwordConfirm`
|
||||
|
||||
## 与原项目关系
|
||||
|
||||
Reference in New Issue
Block a user