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:
@@ -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.');
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 };
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user