41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
|
|
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<TokenInfo | null>(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
|
|||
|
|
}
|
|||
|
|
})
|