From c0b0e01eeacdd6722a85eb334ce3b398214ef0d1 Mon Sep 17 00:00:00 2001 From: Gabriellvl Date: Wed, 14 May 2025 11:01:04 +0200 Subject: [PATCH] feat: onthou link voor redirect naar login --- frontend/src/router/index.ts | 4 ++++ frontend/src/views/CallbackPage.vue | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) 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}`; }