From 6e5a076d8168c8b7595b520bad7257074e826894 Mon Sep 17 00:00:00 2001 From: dzq Date: Fri, 18 Apr 2025 10:24:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(router):=20=E4=BF=AE=E5=A4=8D=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E5=AE=88=E5=8D=AB=E4=B8=AD=E7=94=A8=E6=88=B7=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E6=9C=AA=E6=AD=A3=E7=A1=AE=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在导航守卫中,`ab98UserStore` 的初始化位置被移动到需要的地方,以确保在检查登录状态时已正确初始化。此外,在 `App.vue` 中,增加了对 `token` 的非空检查,避免在 `token` 为空时执行不必要的操作。 --- src/App.vue | 24 +++++++++++++----------- src/router/guard.ts | 2 +- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/App.vue b/src/App.vue index 3910c3d..4a1beca 100644 --- a/src/App.vue +++ b/src/App.vue @@ -38,18 +38,20 @@ onMounted(() => { if (state && state.indexOf('token') !== -1) { const token = state.split('token_')[1]; - ab98UserStore.setTokenLogin(token); + if (token) { + ab98UserStore.setTokenLogin(token); - tokenLogin(token).then(res => { - if (res && res.code == 0) { - if (res.data.success) { - ab98UserStore.setTel(res.data.tel) - ab98UserStore.setUserInfo(res.data) - ab98UserStore.setIsLogin(true) - router.push('/') - } - } - }) + tokenLogin(token).then(res => { + if (res && res.code == 0) { + if (res.data.success) { + ab98UserStore.setTel(res.data.tel) + ab98UserStore.setUserInfo(res.data) + ab98UserStore.setIsLogin(true) + router.push('/') + } + } + }) + } } if (isAdmin == '1') { diff --git a/src/router/guard.ts b/src/router/guard.ts index bc614da..e0891d5 100644 --- a/src/router/guard.ts +++ b/src/router/guard.ts @@ -7,7 +7,6 @@ import { getToken } from "@@/utils/cache/cookies" import NProgress from "nprogress" import { useAb98UserStore } from '@/pinia/stores/ab98-user' -const ab98UserStore = useAb98UserStore() NProgress.configure({ showSpinner: false }) @@ -27,6 +26,7 @@ export function registerNavigationGuard(router: Router) { return true; } + const ab98UserStore = useAb98UserStore(); if (!ab98UserStore.isLogin) { // 如果在免登录的白名单中,则直接进入 if (isWhiteList(to)) return true