diff --git a/web/src/main.ts b/web/src/main.ts index 700cbff..6c16b65 100644 --- a/web/src/main.ts +++ b/web/src/main.ts @@ -1,9 +1,10 @@ import { createApp } from 'vue' import App from './App.vue' import router from './router' -import store from './store' +import store, { useUserStore } from './store' import ElementPlus from 'element-plus' import 'element-plus/dist/index.css' +import { getToken } from './utils/storage' const app = createApp(App) @@ -11,4 +12,11 @@ app.use(router) app.use(store) app.use(ElementPlus) +// 初始化store中的token +const token = getToken() +if (token) { + const userStore = useUserStore() + userStore.setToken(token) +} + app.mount('#app') diff --git a/web/src/store/modules/user.ts b/web/src/store/modules/user.ts index 9133f65..2d633f3 100644 --- a/web/src/store/modules/user.ts +++ b/web/src/store/modules/user.ts @@ -2,6 +2,7 @@ import { defineStore } from 'pinia' import { ref } from 'vue' import { loginApi } from '../../api/login' import type { LoginForm } from '../../api/login/types' +import { setToken as setStorageToken, removeToken } from '../../utils/storage' export const useUserStore = defineStore('user', () => { const token = ref('') @@ -9,6 +10,7 @@ export const useUserStore = defineStore('user', () => { const setToken = (newToken: string) => { token.value = newToken + setStorageToken(newToken) } const setUserInfo = (info: object) => { @@ -22,11 +24,16 @@ export const useUserStore = defineStore('user', () => { return res } + const getUserInfo = () => { + return userInfo.value + } + return { token, userInfo, setToken, setUserInfo, - login + login, + getUserInfo } }) diff --git a/web/src/views/Layout/index.vue b/web/src/views/Layout/index.vue index ddf22a2..f406ae5 100644 --- a/web/src/views/Layout/index.vue +++ b/web/src/views/Layout/index.vue @@ -48,7 +48,7 @@ @@ -65,7 +65,9 @@