Require access token presence in MainContainer auth gate before route entry
Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user