Fișierul hooks.server.ts este echivalentul middleware-ului global din Express sau NestJS. Funcția handle rulează la fiecare cerere primită de serverul SvelteKit, înainte ca rutele individuale să fie executate, fiind locul ideal pentru securitate și verificarea identității.
Implementarea verificării sesiunii în src/hooks.server.ts
import type { Handle } from '@sveltejs/kit';
export const handle: Handle = async ({ event, resolve }) => {
// 1. Extragem cookie-ul de sesiune:
const tokenSesiune = event.cookies.get('token_sesiune');
if (tokenSesiune) {
// 2. Populăm event.locals (disponibil în toate fișierele +page.server.ts):
event.locals.user = {
id: 101,
email: "admin@dexblog.ro",
esteAdmin: true
};
} else {
event.locals.user = null;
}
// 3. Protejăm rutele administrative:
if (event.url.pathname.startsWith('/admin') && !event.locals.user?.esteAdmin) {
return new Response('Acces Neautorizat', { status: 403 });
}
// 4. Continuăm fluxul normal:
const response = await resolve(event);
return response;
};
Întrebări & Exemple de Cod:
Middleware și Interceptare cu Hooks în SvelteKit: Fișierul hooks.server.tsAi o nelămurire despre utilizarea comenzii
Middleware și Interceptare cu Hooks în SvelteKit: Fișierul hooks.server.tssau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.