Next.js Middleware

React 🟡 Mid

Définition

Code exécuté avant le rendu d'une route pour rediriger, réécrire l'URL, poser des en-têtes ou des cookies. Depuis Next.js 16 (21 octobre 2025), le fichier middleware.ts est déprécié et renommé proxy.ts ; il s'exécute par défaut sur le runtime Node.js et non plus Edge.

Analogie

Comme un vigile a l'entrée d'un bâtiment : il vérifie ton badge avant de te laisser entrer dans n'importe quelle pièce.

Exemple de code

// proxy.ts (racine du projet) — Next.js 16+
import { NextResponse, type NextRequest } from 'next/server';

export function proxy(request: NextRequest) {
  const token = request.cookies.get('token');
  if (!token) return NextResponse.redirect(new URL('/login', request.url));
  return NextResponse.next();
}
export const config = { matcher: ['/dashboard/:path*'] };
// Migration : npx @next/codemod@canary middleware-to-proxy .

Cas d'usage

Redirections, réécritures, en-têtes CORS, vérification légère de session sur un groupe de routes via matcher.

Anti-pattern

Faire reposer l'authentification uniquement sur le proxy : les Server Functions sont des POST sur la route qui les utilise, et un matcher qui exclut un chemin les laisse passer. Vérifier l'autorisation dans chaque Server Function.
#nextjs#auth#routing

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre