From 29f2f7bcfe671789b8129da3b74e70b2dbf2b7ee Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Wed, 22 Mar 2023 21:12:55 -0800 Subject: [PATCH] fix session clearing on error --- frontend/composables/use-api.ts | 1 + frontend/middleware/auth.ts | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/composables/use-api.ts b/frontend/composables/use-api.ts index f793908..cf8cd7d 100644 --- a/frontend/composables/use-api.ts +++ b/frontend/composables/use-api.ts @@ -34,6 +34,7 @@ export function useUserApi(): UserClient { requests.addResponseInterceptor(logger); requests.addResponseInterceptor(r => { if (r.status === 401) { + console.error("unauthorized request, invalidating session"); authCtx.invalidateSession(); } }); diff --git a/frontend/middleware/auth.ts b/frontend/middleware/auth.ts index 1c9e95d..dd41635 100644 --- a/frontend/middleware/auth.ts +++ b/frontend/middleware/auth.ts @@ -2,10 +2,14 @@ export default defineNuxtRouteMiddleware(async () => { const ctx = useAuthContext(); const api = useUserApi(); + if (!ctx.isAuthorized()) { + return navigateTo("/"); + } + if (!ctx.user) { const { data, error } = await api.user.self(); if (error) { - navigateTo("/"); + return navigateTo("/"); } ctx.user = data.item;