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

1.1 KiB
Raw Blame History

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 构造时,会尝试基于本地已持久化的 tokenAkReq.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 },从而使依赖登录态的页面判断失败。