From 955e9ceda9d6cb9eefabdf73bedec8ad8c23fe5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Sun, 8 Mar 2026 19:14:20 +0800 Subject: [PATCH] Move auth-entry checks to router guard and simplify MainContainer route logic Co-Authored-By: Codex --- src/views/MainContainer.vue | 65 -------------- tests/router/routerGuard.test.js | 55 ++++++++++-- tests/views/MainContainerGuard.test.js | 120 ------------------------- 3 files changed, 48 insertions(+), 192 deletions(-) delete mode 100644 tests/views/MainContainerGuard.test.js diff --git a/src/views/MainContainer.vue b/src/views/MainContainer.vue index f5e2cf0..bc1bd99 100644 --- a/src/views/MainContainer.vue +++ b/src/views/MainContainer.vue @@ -27,11 +27,9 @@ * via beforeRouteUpdate. */ -import { useLoginStore as useLoginStoreInGuard } from "@/stores/login"; import { usePageAdminStore as usePageAdminStoreInGuard } from "@/stores/pageAdmin"; import { useAllMapDataStore as useAllMapDataStoreInGuard } from "@/stores/allMapData"; import { useConformanceStore as useConformanceStoreInGuard } from "@/stores/conformance"; -import { getCookie, setCookie } from "@/utils/cookieUtil.js"; import { leaveFilter as leaveFilterInGuard, leaveConformance as leaveConformanceInGuard, @@ -39,55 +37,6 @@ import { import emitterInGuard from "@/utils/emitter"; export default { - // When the page is refreshed or entered for the first time, beforeRouteEnter is executed, but beforeRouteUpdate is not - // PSEUDOCODE - // if (not logged in) { - // if (has refresh token) { - // refresh_token(); - // if (refresh failed) { - // go to log in(); - // } else { - // cookie add("refresh_token=" + refresh_token "; expire=****") - // } - // } else { - // go to log in(); - // } - // } - async beforeRouteEnter(to, from, next) { - const loginStore = useLoginStoreInGuard(); - const relativeReturnTo = `${window.location.pathname}${window.location.search}${window.location.hash}`; - const hasLoginMarker = Boolean(getCookie("isLuciaLoggedIn")); - const hasAccessToken = Boolean(getCookie("luciaToken")); - const hasRefreshToken = Boolean(getCookie("luciaRefreshToken")); - - if (hasLoginMarker && hasAccessToken) { - next(); - return; - } - - if (hasRefreshToken) { - try { - await loginStore.refreshToken(); - loginStore.setIsLoggedIn(true); - setCookie("isLuciaLoggedIn", "true"); - next(); - } catch (error) { - next({ - path: "/login", - query: { - "return-to": btoa(relativeReturnTo), - }, - }); - } - } else { - next({ - path: "/login", - query: { - "return-to": btoa(relativeReturnTo), - }, - }); - } - }, // Remember, Swal modal handling is called before beforeRouteUpdate beforeRouteUpdate(to, from, next) { const pageAdminStore = usePageAdminStoreInGuard(); @@ -127,31 +76,17 @@ export default {