mall数据库文件
This commit is contained in:
22
components/supadb/docs/CHANGELOG.md
Normal file
22
components/supadb/docs/CHANGELOG.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 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 }`,从而使依赖登录态的页面判断失败。
|
||||
Reference in New Issue
Block a user