Skip to main content

Cos’è un middleware

Un middleware è un meccanismo per ispezionare e filtrare le richieste HTTP in arrivo. Puoi inserire logica prima e dopo che la richiesta arrivi al controller. Ad esempio, Laravel include un middleware di autenticazione. Se l’utente non è autenticato, effettua il redirect alla schermata di login; se lo è, lascia proseguire la richiesta all’interno dell’applicazione. Oltre all’autenticazione puoi creare middleware per registrazione dei log, protezione CSRF, rate limiting e altri scopi. Per i dettagli sulla protezione CSRF di Laravel 13 consulta Protezione CSRF.
I middleware definiti dall’utente si trovano di norma nella directory app/Http/Middleware.

Middleware integrati

Laravel prevede di default due gruppi di middleware: web e api. A routes/web.php viene applicato automaticamente il gruppo web e a routes/api.php il gruppo api. I middleware più comuni hanno inoltre degli alias per essere richiamati con nomi brevi.

Creazione di un middleware

Crea un nuovo middleware con il comando Artisan make:middleware.
Viene generato app/Http/Middleware/EnsureTokenIsValid.php. Scrivi la logica di elaborazione della richiesta nel metodo handle.
Chiamando $next($request) la richiesta prosegue nell’elaborazione successiva. Se la condizione non è soddisfatta, restituisci un redirect o una risposta per interrompere.

Elaborazione prima e dopo la richiesta

Il middleware può eseguire logica prima o dopo la richiesta.

Registrazione dei middleware

Middleware globali

Se vuoi eseguire un middleware per ogni richiesta, aggiungilo allo stack globale in withMiddleware di bootstrap/app.php.
append aggiunge in coda allo stack. Per aggiungere in testa usa prepend.

Applicazione a route

Per applicare il middleware solo a certe route, chiama il metodo middleware nella definizione della route.
Per più middleware passa un array.
Per escludere un middleware da una route specifica usa withoutMiddleware.

Alias dei middleware

Puoi definire alias brevi per nomi di classi lunghi. Configura in bootstrap/app.php.
Poi puoi applicarli alle route tramite l’alias.

Gruppi di middleware

Raggruppando più middleware in un’unica chiave, applicarli alle route diventa più semplice. In bootstrap/app.php usa appendToGroup o prependToGroup.
Un gruppo si applica come un middleware normale.
Per aggiungere middleware ai gruppi esistenti web o api ci sono metodi dedicati.

Parametri dei middleware

Il middleware può ricevere parametri aggiuntivi. Aggiungi il parametro dopo l’argomento $next del metodo handle.
Nella definizione della route separa nome del middleware e parametro con :.
Separa più parametri con la virgola.

Esempio pratico: middleware di controllo dell’autenticazione

Esempio semplice che reindirizza gli utenti non autenticati.
Applicalo alla route.
Laravel include il middleware auth per l’autenticazione. Prima di implementarne uno personalizzato, verifica se puoi soddisfare i tuoi requisiti con i middleware esistenti.

Prossimi passi

Richieste HTTP

Impara come ricevere i dati delle richieste nei controller.
Ultima modifica il 13 luglio 2026