| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { ACCOUNT_KEY, USERINFO_KEY, TOKEN_KEY } from '@/enums/cacheEnums'
- import {createPinia, defineStore} from 'pinia'
- import { createPersistedState } from 'pinia-plugin-persistedstate'
- const pinia = createPinia()
- interface UserSate {
- userInfos: any
- token: string | null
- account: string | null
- temToken: string | null
- }
- export const useUserStore = defineStore({
- id: 'userStore',
- state: (): UserSate => {
- const TOKEN = useCookie(TOKEN_KEY)
- const ACCOUNT = useCookie(ACCOUNT_KEY)
- const USERINFO = useCookie(USERINFO_KEY)
- return {
- userInfos: USERINFO.value || null,
- token: TOKEN.value || null,
- account: ACCOUNT.value || null,
- temToken: null,
- }
- },
- getters: {
- isLogin: (state) => !!state.token,
- userInfo: (state) => state.userInfos,
- },
- actions: {
- setUserInfo(userInfos:any) {
- const USERINFO = useCookie(USERINFO_KEY)
- this.userInfos = userInfos
- Object.assign(this.userInfos, userInfos)
- USERINFO.value = userInfos
- },
- setAccount(account: string) {
- const ACCOUNT = useCookie(ACCOUNT_KEY)
- this.account = account
- ACCOUNT.value = account
- },
- login(token: string) {
- const TOKEN = useCookie(TOKEN_KEY)
- this.token = token
- TOKEN.value = token
- },
- logout() {
- const TOKEN = useCookie(TOKEN_KEY)
- const USERINFO = useCookie(USERINFO_KEY)
- this.token = null
- this.userInfos = null
- USERINFO.value = null
- TOKEN.value = null
- navigateTo({path: '/'})
- if(process.client) window.localStorage.clear();
- },
- },
- persist: process.client && { // 仅在客户端使用
- storage: localStorage, // localStorage 本地存储,可替换sessionStorage
- },
- })
- const clearAllCookies = async()=> {
- var cookies = document.cookie.split(";");
- for (var i = 0; i < cookies.length; i++) {
- var cookie = cookies[i];
- var eqPos = cookie.indexOf("=");
- var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
- document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
- }
- }
- // 添加持久化插件到Pinia中
- pinia.use(createPersistedState())
- export default pinia
|