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": {