diff --git a/frontend/middleware/auth.ts b/frontend/middleware/auth.ts index 97a99203..e9f0b375 100644 --- a/frontend/middleware/auth.ts +++ b/frontend/middleware/auth.ts @@ -1,10 +1,12 @@ export default defineNuxtRouteMiddleware(async () => { const ctx = useAuthContext(); const api = useUserApi(); + const redirectTo = useState("authRedirect"); if (!ctx.isAuthorized()) { if (window.location.pathname !== "/") { console.debug("[middleware/auth] isAuthorized returned false, redirecting to /"); + redirectTo.value = window.location.pathname; return navigateTo("/"); } } @@ -15,6 +17,7 @@ export default defineNuxtRouteMiddleware(async () => { if (error) { if (window.location.pathname !== "/") { console.debug("[middleware/user] user is null and fetch failed, redirecting to /"); + redirectTo.value = window.location.pathname; return navigateTo("/"); } } diff --git a/frontend/pages/index.vue b/frontend/pages/index.vue index 22fffc57..bffc979f 100644 --- a/frontend/pages/index.vue +++ b/frontend/pages/index.vue @@ -103,6 +103,7 @@ const loading = ref(false); const loginPassword = ref(""); + const redirectTo = useState("authRedirect"); async function login() { loading.value = true; @@ -116,7 +117,8 @@ toast.success("Logged in successfully"); - navigateTo("/home"); + navigateTo(redirectTo.value || "/home"); + redirectTo.value = null; loading.value = false; }