2026-02-14 18:59:36 +08:00

1.3 KiB
Raw Blame History

user.ts (Store)

路径src/stores/user.ts

功能用途

用户登录态与基础信息的 Pinia Store管理 token、user、余额并提供鉴权请求头。登录数据持久化到 localStoragepoly-user)。

核心能力

  • tokenuser:登录凭证与用户信息
  • isLoggedInavatarUrl:派生状态
  • balanceUSDC 余额显示(如 "0.00"
  • setUser:设置登录数据并持久化
  • logout:清空并清除持久化
  • getAuthHeaders:返回 { 'x-token', 'x-user-id' },未登录时返回 undefined
  • fetchUserInfofetchUsdcBalance:拉取并更新用户信息与余额

使用方式

import { useUserStore } from '@/stores/user'

const userStore = useUserStore()

// 登录后设置
userStore.setUser({ token: 'xxx', user: { id: 1, nickName: 'User' } })

// 鉴权请求
const headers = userStore.getAuthHeaders()
if (headers) {
  await someApiCall(undefined, { headers })
}

// 刷新余额
await userStore.fetchUsdcBalance()

扩展方式

  1. 多端登录:扩展 setUser 支持多设备 token 管理
  2. Token 刷新:在 getAuthHeaders 或请求拦截器中加入 refresh 逻辑
  3. 登出回调:在 logout 中增加清理逻辑(如取消订阅、重置其他 store