Files
medical-mall/components/supadb/docs/CHANGELOG.md
2026-01-30 16:11:23 +08:00

23 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SupaDB 文档更新记录
## 2026-01-30
### AkSupa从本地持久化 token 恢复 user/session
- **文件**`components/supadb/aksupa.uts`
- **位置**`export class AkSupa` -> `constructor(baseUrl: string, apikey: string)`,以及新增方法 `hydrateSessionFromStorage()`
- **定位标记**:在代码中搜索 `// [CHANGE][2026-01-30]`
#### 修改了什么
-`AkSupa` 构造时,会尝试基于本地已持久化的 token`AkReq.setToken` 写入 storage恢复登录态。
- 新增 `hydrateSessionFromStorage()`
- 通过 `AkReq.getToken()` 读取本地 access token
- 若 token 存在,则请求 `GET {baseUrl}/auth/v1/user`
- 将返回的 user 写入 `this.user`
-`this.session` 为空,则补齐一个最小 session 对象,使 `getSession()` 在「重启 App / 刷新页面」后仍能正确反映登录状态
#### 为什么要改
此前 `AkReq` 会把 token 持久化到本地,但 `AkSupa` 启动时不会自动恢复 `this.user` / `this.session`,导致即使 token 仍有效,`getSession()` 也可能返回 `{ session: null, user: null }`,从而使依赖登录态的页面判断失败。