From 87ab4a5d936dab1fba052ae8f0899f652cd2a114 Mon Sep 17 00:00:00 2001 From: feige996 <1020102647@qq.com> Date: Fri, 29 Aug 2025 15:08:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(router):=20=E6=98=8E=E7=A1=AE=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E6=8B=A6=E6=88=AA=E5=99=A8=E7=9A=84=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=80=BC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改路由拦截器中的返回值,明确区分允许继续执行和阻止执行的情况 优化登录页列表和白名单的逻辑判断 --- src/router/interceptor.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/router/interceptor.ts b/src/router/interceptor.ts index dd1a59b..08c960a 100644 --- a/src/router/interceptor.ts +++ b/src/router/interceptor.ts @@ -37,7 +37,7 @@ export const navigateToInterceptor = { if (LOGIN_PAGE_LIST.includes(path)) { console.log('命中了 LOGIN_PAGE_LIST') - return + return true // 明确表示允许路由继续执行 } let fullPath = path @@ -52,16 +52,18 @@ export const navigateToInterceptor = { // #region 1/2 需要登录的情况 --------------------------- if (isNeedLoginMode) { if (tokenStore.hasLogin) { - return + return true // 明确表示允许路由继续执行 } else { + // 需要登录里面的 EXCLUDE_PAGE_LIST 表示白名单,可以直接通过 if (EXCLUDE_PAGE_LIST.includes(path)) { - return + return true // 明确表示允许路由继续执行 } + // 否则需要重定向到登录页 else { - console.log('isNeedLogin redirectUrl:', redirectUrl) + console.log('1 isNeedLogin redirectUrl:', redirectUrl) uni.navigateTo({ url: redirectUrl }) - return + return false // 明确表示阻止原路由继续执行 } } } @@ -69,13 +71,15 @@ export const navigateToInterceptor = { // #region 2/2 不需要登录的情况 --------------------------- else { + // 不需要登录里面的 EXCLUDE_PAGE_LIST 表示黑名单,需要重定向到登录页 if (EXCLUDE_PAGE_LIST.includes(path)) { - console.log('isNeedLogin redirectUrl:', redirectUrl) + console.log('2 isNeedLogin redirectUrl:', redirectUrl) uni.navigateTo({ url: redirectUrl }) - return + return false // 明确表示阻止原路由继续执行 } } // #endregion 2/2 不需要登录的情况 --------------------------- + return true // 明确表示允许路由继续执行 }, }