From e27be2d47ac6e53c241246dee3286bef4c7593f4 Mon Sep 17 00:00:00 2001 From: Donny Wang <53386850+coderwyd@users.noreply.github.com> Date: Tue, 6 Aug 2024 21:52:06 +0800 Subject: [PATCH] fix: successful login should not take you to the login page (#4056) * fix: successful login should not take you to the login page * chore: use DEFAULT_HOME_PATH constants * chore: remove invalid spaces in script * fix: lint error --- apps/web-antd/src/router/guard.ts | 20 +++++++++++++------- apps/web-ele/src/router/guard.ts | 20 +++++++++++++------- apps/web-naive/src/router/guard.ts | 20 +++++++++++++------- package.json | 2 +- 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/apps/web-antd/src/router/guard.ts b/apps/web-antd/src/router/guard.ts index 6bf46a60..1581d015 100644 --- a/apps/web-antd/src/router/guard.ts +++ b/apps/web-antd/src/router/guard.ts @@ -1,6 +1,6 @@ import type { Router } from 'vue-router'; -import { LOGIN_PATH } from '@vben/constants'; +import { DEFAULT_HOME_PATH, LOGIN_PATH } from '@vben/constants'; import { preferences } from '@vben/preferences'; import { useAccessStore, useUserStore } from '@vben/stores'; import { startProgress, stopProgress } from '@vben/utils'; @@ -62,14 +62,20 @@ function setupAccessGuard(router: Router) { const userStore = useUserStore(); const authStore = useAuthStore(); + // 基本路由,这些路由不需要进入权限拦截 + if (coreRouteNames.includes(to.name as string)) { + if (to.path === LOGIN_PATH && accessStore.accessToken) { + return decodeURIComponent( + (to.query?.redirect as string) || DEFAULT_HOME_PATH, + ); + } + return true; + } + // accessToken 检查 if (!accessStore.accessToken) { - if ( - // 基本路由,这些路由不需要进入权限拦截 - coreRouteNames.includes(to.name as string) || - // 明确声明忽略权限访问权限,则可以访问 - to.meta.ignoreAccess - ) { + // 明确声明忽略权限访问权限,则可以访问 + if (to.meta.ignoreAccess) { return true; } diff --git a/apps/web-ele/src/router/guard.ts b/apps/web-ele/src/router/guard.ts index 6bf46a60..1581d015 100644 --- a/apps/web-ele/src/router/guard.ts +++ b/apps/web-ele/src/router/guard.ts @@ -1,6 +1,6 @@ import type { Router } from 'vue-router'; -import { LOGIN_PATH } from '@vben/constants'; +import { DEFAULT_HOME_PATH, LOGIN_PATH } from '@vben/constants'; import { preferences } from '@vben/preferences'; import { useAccessStore, useUserStore } from '@vben/stores'; import { startProgress, stopProgress } from '@vben/utils'; @@ -62,14 +62,20 @@ function setupAccessGuard(router: Router) { const userStore = useUserStore(); const authStore = useAuthStore(); + // 基本路由,这些路由不需要进入权限拦截 + if (coreRouteNames.includes(to.name as string)) { + if (to.path === LOGIN_PATH && accessStore.accessToken) { + return decodeURIComponent( + (to.query?.redirect as string) || DEFAULT_HOME_PATH, + ); + } + return true; + } + // accessToken 检查 if (!accessStore.accessToken) { - if ( - // 基本路由,这些路由不需要进入权限拦截 - coreRouteNames.includes(to.name as string) || - // 明确声明忽略权限访问权限,则可以访问 - to.meta.ignoreAccess - ) { + // 明确声明忽略权限访问权限,则可以访问 + if (to.meta.ignoreAccess) { return true; } diff --git a/apps/web-naive/src/router/guard.ts b/apps/web-naive/src/router/guard.ts index 6bf46a60..1581d015 100644 --- a/apps/web-naive/src/router/guard.ts +++ b/apps/web-naive/src/router/guard.ts @@ -1,6 +1,6 @@ import type { Router } from 'vue-router'; -import { LOGIN_PATH } from '@vben/constants'; +import { DEFAULT_HOME_PATH, LOGIN_PATH } from '@vben/constants'; import { preferences } from '@vben/preferences'; import { useAccessStore, useUserStore } from '@vben/stores'; import { startProgress, stopProgress } from '@vben/utils'; @@ -62,14 +62,20 @@ function setupAccessGuard(router: Router) { const userStore = useUserStore(); const authStore = useAuthStore(); + // 基本路由,这些路由不需要进入权限拦截 + if (coreRouteNames.includes(to.name as string)) { + if (to.path === LOGIN_PATH && accessStore.accessToken) { + return decodeURIComponent( + (to.query?.redirect as string) || DEFAULT_HOME_PATH, + ); + } + return true; + } + // accessToken 检查 if (!accessStore.accessToken) { - if ( - // 基本路由,这些路由不需要进入权限拦截 - coreRouteNames.includes(to.name as string) || - // 明确声明忽略权限访问权限,则可以访问 - to.meta.ignoreAccess - ) { + // 明确声明忽略权限访问权限,则可以访问 + if (to.meta.ignoreAccess) { return true; } diff --git a/package.json b/package.json index 08b1b82e..2cce7e19 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "publint": "vsh publint", "reinstall": "pnpm clean --del-lock && pnpm bootstrap", "test:unit": "vitest", - "update:deps": " pnpm update --latest --recursive", + "update:deps": "pnpm update --latest --recursive", "version": "pnpm exec changeset version && pnpm install --no-frozen-lockfile" }, "devDependencies": {