Ce face middleware.ts - Interceptarea cererilor la nivel de rețea (Edge Middleware)
Fișierul middleware.ts plasat în rădăcina proiectului (sau în `src/`) se execută pe fiecare cerere HTTP care se potrivește cu filtrul `matcher`.
Rulează într-un mediu ultra-rapid Edge Runtime (bazat pe V8), având latență de milisecunde.
Este locul ideal pentru a verifica token-urile de autentificare din cookie-uri, a redirecționa utilizatorii nelogați, a adăuga antete de securitate (CSP) sau a rescrie rute bazat pe limba sau țara vizitatorului.
Exemple
Exemplul 1: Protejarea rutelor /dashboard cu verificare de token de autentificare
Oprește accesul la panou dacă lipsește cookie-ul de sesiune.
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const token = request.cookies.get('token_sesiune')?.value;
if (!token && request.nextUrl.pathname.startsWith('/dashboard')) {
const urlLogin = new URL('/login', request.url);
return NextResponse.redirect(urlLogin);
}
return NextResponse.next();
}
export const config = {
matcher: ['/dashboard/:path*'],
};
Ieșire în terminal
Utilizatorii fără cookie sunt redirecționați la /login înainte de încărcarea paginii.
Greșeli frecvente
- Încercarea de a folosi module native grele Node.js (precum `fs` sau conexiuni TCP directe la baze de date) în middleware; mediul Edge Runtime nu suportă toate API-urile complete Node.js.
Comenzi înrudite
next.config.js - Fișierul principal de configurare Next.js: Centralizează setările avansate ale compilatorului, modulelor externe, regulilor de redirecționare și mediului de rulare.cookies() din next/headers - Gestionarea cookie-urilor pe server: Permite citirea, setarea și ștergerea cookie-urilor HTTP direct din componentele și acțiunile de server.Redirecționări globale (redirects) în next.config.js - Păstrarea autorității SEO: Configurează reguli masive de redirecționare HTTP 307 sau 308 la nivel de server înainte de randarea componentelor.