diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 359eab1a..001738e4 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -143,6 +143,10 @@ router.beforeEach(async (to, _from, next) => { // Verify if user is logged in before accessing certain routes if (to.meta.requiresAuth) { if (!authService.isLoggedIn.value && !(await authService.loadUser())) { + const path = to.fullPath + if (path !== "/") { + localStorage.setItem("redirectAfterLogin", path); + } next("/login"); } else { next(); diff --git a/frontend/src/views/CallbackPage.vue b/frontend/src/views/CallbackPage.vue index cd004eae..f554096a 100644 --- a/frontend/src/views/CallbackPage.vue +++ b/frontend/src/views/CallbackPage.vue @@ -10,10 +10,21 @@ const errorMessage: Ref = ref(null); + async function redirectPage() { + const redirectUrl = localStorage.getItem("redirectAfterLogin"); + if (redirectUrl) { + console.log("redirect", redirectUrl); + localStorage.removeItem("redirectAfterLogin"); + await router.replace(redirectUrl); + } else { + await router.replace("/user"); // Redirect to theme page + } + } + onMounted(async () => { try { await auth.handleLoginCallback(); - await router.replace("/user"); // Redirect to theme page + await redirectPage(); } catch (error) { errorMessage.value = `${t("loginUnexpectedError")}: ${error}`; }