# 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 }`，从而使依赖登录态的页面判断失败。
