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
|
||
}
|
||
})
|