From 6a1ffd7700ec3b5dc69e908e5e2a31d1a18fda65 Mon Sep 17 00:00:00 2001 From: Harrison Conlin Date: Sat, 29 Jun 2024 23:02:23 +1000 Subject: [PATCH] Add redirect functionality after login (#76) Gone is the frustration of scanning a qr code to only be sent to the homepage --- frontend/middleware/auth.ts | 3 +++ frontend/pages/index.vue | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) 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; }