From 551a2fed0009e043bc60886a82e701e635107da9 Mon Sep 17 00:00:00 2001 From: killer-cf Date: Wed, 17 Dec 2025 11:28:08 -0300 Subject: [PATCH] refactor: streamline authentication logic in dashboard and login routes by removing unnecessary error handling and improving user session validation, enhancing code clarity and maintainability --- .../src/routes/(dashboard)/+layout.server.ts | 18 +++++------ .../src/routes/(public)/login/+page.server.ts | 30 +++++++++---------- packages/backend/convex/auth.ts | 2 -- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/apps/web/src/routes/(dashboard)/+layout.server.ts b/apps/web/src/routes/(dashboard)/+layout.server.ts index af4e7b3..8d58958 100644 --- a/apps/web/src/routes/(dashboard)/+layout.server.ts +++ b/apps/web/src/routes/(dashboard)/+layout.server.ts @@ -1,21 +1,17 @@ import { createConvexHttpClient } from '@mmailaender/convex-better-auth-svelte/sveltekit'; import { api } from '@sgse-app/backend/convex/_generated/api'; -import { error, redirect } from '@sveltejs/kit'; -import type { FunctionReference } from 'convex/server'; +import { redirect } from '@sveltejs/kit'; export const load = async ({ locals, url }) => { if (!locals.token) { throw redirect(302, '/login?redirect=' + url.pathname); } - try { - const client = createConvexHttpClient({ token: locals.token }); - const currentUser = await client.query(api.auth.getCurrentUser as FunctionReference<'query'>); - if (!currentUser) { - throw redirect(302, '/login?redirect=' + url.pathname); - } - return { currentUser }; - } catch { - return error(500, 'Ops! Ocorreu um erro, tente novamente mais tarde.'); + const client = createConvexHttpClient({ token: locals.token }); + const currentUser = await client.query(api.auth.getCurrentUser); + + if (!currentUser) { + throw redirect(302, '/login?redirect=' + url.pathname); } + return { currentUser }; }; diff --git a/apps/web/src/routes/(public)/login/+page.server.ts b/apps/web/src/routes/(public)/login/+page.server.ts index 6a7a227..34144a4 100644 --- a/apps/web/src/routes/(public)/login/+page.server.ts +++ b/apps/web/src/routes/(public)/login/+page.server.ts @@ -1,24 +1,22 @@ import { createConvexHttpClient } from '@mmailaender/convex-better-auth-svelte/sveltekit'; import { api } from '@sgse-app/backend/convex/_generated/api'; import { redirect } from '@sveltejs/kit'; -import type { FunctionReference } from 'convex/server'; export const load = async ({ locals, url }) => { - try { - const client = createConvexHttpClient({ token: locals.token }); - const currentUser = await client.query(api.auth.getCurrentUser as FunctionReference<'query'>); - - if (currentUser) { - const redirectTo = url.searchParams.get('redirect'); - if (redirectTo && redirectTo.startsWith('/')) { - throw redirect(302, redirectTo); - } - throw redirect(302, '/'); - } - } catch (error) { - // Se houver falha transitória na API/auth, ainda assim permitir renderizar a página de login. - console.error('Erro ao validar sessão na página de login:', error); + if (!locals.token) { + return { currentUser: null }; } - return {}; + const client = createConvexHttpClient({ token: locals.token }); + const currentUser = await client.query(api.auth.getCurrentUser); + + if (currentUser) { + const redirectTo = url.searchParams.get('redirect'); + if (redirectTo && redirectTo.startsWith('/')) { + throw redirect(302, redirectTo); + } + throw redirect(302, '/'); + } + + return { currentUser }; }; diff --git a/packages/backend/convex/auth.ts b/packages/backend/convex/auth.ts index 74bcde5..76bd874 100644 --- a/packages/backend/convex/auth.ts +++ b/packages/backend/convex/auth.ts @@ -8,8 +8,6 @@ import { type MutationCtx, type QueryCtx, query } from './_generated/server'; // Usar SITE_URL se disponível, caso contrário usar CONVEX_SITE_URL ou um valor padrão const siteUrl = process.env.SITE_URL || process.env.CONVEX_SITE_URL || 'http://localhost:5173'; -console.log('siteUrl:', siteUrl); - // The component client has methods needed for integrating Convex with Better Auth, // as well as helper methods for general use. export const authComponent = createClient(components.betterAuth);