0Pricing
PHP Academy · Lezione

Protezione delle route con i middleware

Usare i middleware auth e guest per proteggere le route e reindirizzare gli utenti.

Protezione delle route con i middleware è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.

Che cos'è il Middleware?

Il middleware è codice che viene eseguito prima o dopo che una richiesta HTTP raggiunga il controller. Viene utilizzato per l'autenticazione, il logging, CORS, la limitazione della frequenza e altro.

Middleware auth integrato

Il middleware auth reindirizza gli utenti non autenticati alla pagina di accesso (oppure restituisce 401 per le richieste API).

<?php
Route::get("/dashboard", [DashboardController::class, "index"])
    ->middleware("auth");

Applicare il Middleware ai gruppi

Protegga un intero gruppo di route in una sola volta.

<?php
Route::middleware(["auth", "verified"])->group(function () {
    Route::get("/dashboard", [DashboardController::class, "index"]);
    Route::get("/profile",   [ProfileController::class, "show"]);
});

Middleware guest

Il middleware guest allontana gli utenti autenticati dalle pagine di accesso e registrazione.

<?php
Route::middleware("guest")->group(function () {
    Route::get("/login",    [LoginController::class, "create"]);
    Route::get("/register", [RegisterController::class, "create"]);
});

Creare un Middleware personalizzato

Lo generi con Artisan e implementi il metodo handle().

$ php artisan make:middleware EnsureSubscribed

Logica del Middleware personalizzato

Restituisca la richiesta successiva per continuare l'elaborazione oppure restituisca una risposta per interromperla.

<?php
public function handle(Request $request, Closure $next): Response
{
    if (!$request->user()?->isSubscribed()) {
        return redirect("/subscribe");
    }
    return $next($request);
}

Registrare il Middleware

Registri gli alias del middleware in app/Http/Kernel.php (Laravel 10) o bootstrap/app.php (Laravel 11+).

<?php
// Laravel 11+ bootstrap/app.php:
->withMiddleware(function (Middleware $m) {
    $m->alias(["subscribed" => EnsureSubscribed::class]);
})

Parametri del Middleware

Passi i parametri al middleware utilizzando i due punti.

<?php
Route::middleware("role:admin")->group(function () {
    // ...
});
// In middleware handle():
public function handle(Request $request, Closure $next, string $role): Response

Middleware successivo

Il codice dopo $next($request) viene eseguito dopo la generazione della risposta: è utile per il logging e la modifica della risposta.

<?php
public function handle(Request $request, Closure $next): Response
{
    $response = $next($request); // controller runs here
    $response->headers->set("X-App", "Laravel");
    return $response;
}

Priorità del Middleware

L'ordine di esecuzione del middleware è importante. Il middleware globale (come TrimStrings) viene eseguito prima del middleware delle route.

Middleware throttle

Laravel include la limitazione della frequenza tramite il middleware throttle.

<?php
Route::middleware("throttle:60,1")->group(function () {
    // 60 requests per 1 minute
});

Riepilogo

Il middleware filtra le richieste HTTP. Applichi auth per proteggere le route, crei middleware personalizzati per le regole di business e raggruppi le route per condividere il middleware in modo ordinato.

Verifica rapida

Che cosa fa il middleware auth per gli utenti non autenticati?

Domande Frequenti

La lezione «Protezione delle route con i middleware» è gratuita?

Sì — il testo completo di «Protezione delle route con i middleware» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.

Cosa imparerò in «Protezione delle route con i middleware»?

Usare i middleware auth e guest per proteggere le route e reindirizzare gli utenti. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare PHP Academy?

Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Protezione delle route con i middleware»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione PHP Academy?

Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Autenticazione con Laravel Breeze
  2. Protezione delle route con i middleware
  3. Gate: semplici controlli di autorizzazione
  4. Policy: autorizzazione basata sui modelli
← Torna a PHP Academy