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 Artisanmake:middleware.
app/Http/Middleware/EnsureTokenIsValid.php.
Scrivi la logica di elaborazione della richiesta nel metodo handle.
$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 inwithMiddleware 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 metodomiddleware nella definizione della route.
withoutMiddleware.
Alias dei middleware
Puoi definire alias brevi per nomi di classi lunghi. Configura inbootstrap/app.php.
Gruppi di middleware
Raggruppando più middleware in un’unica chiave, applicarli alle route diventa più semplice. Inbootstrap/app.php usa appendToGroup o prependToGroup.
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.
:.
Esempio pratico: middleware di controllo dell’autenticazione
Esempio semplice che reindirizza gli utenti non autenticati.Prossimi passi
Richieste HTTP
Impara come ricevere i dati delle richieste nei controller.