Require access token presence in MainContainer auth gate before route entry

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
2026-03-08 19:01:03 +08:00
parent 0948a82eb5
commit a8cd590a11
2 changed files with 33 additions and 18 deletions

View File

@@ -56,23 +56,22 @@ export default {
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 (!getCookie("isLuciaLoggedIn")) {
if (getCookie("luciaRefreshToken")) {
try {
await loginStore.refreshToken();
loginStore.setIsLoggedIn(true);
setCookie("isLuciaLoggedIn", "true");
next();
} catch (error) {
next({
path: "/login",
query: {
"return-to": btoa(relativeReturnTo),
},
});
}
} else {
if (hasLoginMarker && hasAccessToken) {
next();
return;
}
if (hasRefreshToken) {
try {
await loginStore.refreshToken();
loginStore.setIsLoggedIn(true);
setCookie("isLuciaLoggedIn", "true");
next();
} catch (error) {
next({
path: "/login",
query: {
@@ -81,7 +80,12 @@ export default {
});
}
} else {
next();
next({
path: "/login",
query: {
"return-to": btoa(relativeReturnTo),
},
});
}
},
// Remember, Swal modal handling is called before beforeRouteUpdate