refactor: streamline authentication logic in dashboard and login routes by removing unnecessary error handling and improving user session validation, enhancing code clarity and maintainability

This commit is contained in:
2025-12-17 11:28:08 -03:00
parent 9072619e26
commit 551a2fed00
3 changed files with 21 additions and 29 deletions

View File

@@ -1,21 +1,17 @@
import { createConvexHttpClient } from '@mmailaender/convex-better-auth-svelte/sveltekit'; import { createConvexHttpClient } from '@mmailaender/convex-better-auth-svelte/sveltekit';
import { api } from '@sgse-app/backend/convex/_generated/api'; import { api } from '@sgse-app/backend/convex/_generated/api';
import { error, redirect } from '@sveltejs/kit'; import { redirect } from '@sveltejs/kit';
import type { FunctionReference } from 'convex/server';
export const load = async ({ locals, url }) => { export const load = async ({ locals, url }) => {
if (!locals.token) { if (!locals.token) {
throw redirect(302, '/login?redirect=' + url.pathname); throw redirect(302, '/login?redirect=' + url.pathname);
} }
try {
const client = createConvexHttpClient({ token: locals.token }); const client = createConvexHttpClient({ token: locals.token });
const currentUser = await client.query(api.auth.getCurrentUser as FunctionReference<'query'>); const currentUser = await client.query(api.auth.getCurrentUser);
if (!currentUser) { if (!currentUser) {
throw redirect(302, '/login?redirect=' + url.pathname); throw redirect(302, '/login?redirect=' + url.pathname);
} }
return { currentUser }; return { currentUser };
} catch {
return error(500, 'Ops! Ocorreu um erro, tente novamente mais tarde.');
}
}; };

View File

@@ -1,12 +1,14 @@
import { createConvexHttpClient } from '@mmailaender/convex-better-auth-svelte/sveltekit'; import { createConvexHttpClient } from '@mmailaender/convex-better-auth-svelte/sveltekit';
import { api } from '@sgse-app/backend/convex/_generated/api'; import { api } from '@sgse-app/backend/convex/_generated/api';
import { redirect } from '@sveltejs/kit'; import { redirect } from '@sveltejs/kit';
import type { FunctionReference } from 'convex/server';
export const load = async ({ locals, url }) => { export const load = async ({ locals, url }) => {
try { if (!locals.token) {
return { currentUser: null };
}
const client = createConvexHttpClient({ token: locals.token }); const client = createConvexHttpClient({ token: locals.token });
const currentUser = await client.query(api.auth.getCurrentUser as FunctionReference<'query'>); const currentUser = await client.query(api.auth.getCurrentUser);
if (currentUser) { if (currentUser) {
const redirectTo = url.searchParams.get('redirect'); const redirectTo = url.searchParams.get('redirect');
@@ -15,10 +17,6 @@ export const load = async ({ locals, url }) => {
} }
throw redirect(302, '/'); 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);
}
return {}; return { currentUser };
}; };

View File

@@ -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 // 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'; 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, // The component client has methods needed for integrating Convex with Better Auth,
// as well as helper methods for general use. // as well as helper methods for general use.
export const authComponent = createClient<DataModel>(components.betterAuth); export const authComponent = createClient<DataModel>(components.betterAuth);