import {defineStore} from "pinia"; import {ref} from "vue"; import Taro from "@tarojs/taro"; export const useUserStore = defineStore('userStore', () => { /** 获取token信息 **/ const getTokenInfo = (): TokenInfo | null => { const ti = Taro.getStorageSync('tokenInfo') // 如果 ti 存在且不是空字符串,则返回 ti,否则返回 null return (ti !== undefined && ti !== null && ti !== '') ? ti : null; } /** 用户token信息 **/ const tokenInfo = ref(getTokenInfo()) /** 保存token信息 **/ const saveTokenInfo = (t: TokenInfo) => { tokenInfo.value = t; Taro.setStorageSync('tokenInfo', tokenInfo.value) } /** 清楚token信息 */ const clearTokenInfo = () => { tokenInfo.value = null Taro.removeStorageSync('tokenInfo') } /** * 重置用户数据 * 一般用于用户退出登录 重置所有相关数据 */ const resetUserInfo = () => { clearTokenInfo() } return { tokenInfo, saveTokenInfo, getTokenInfo, resetUserInfo } })