Indice dei Contenuti
Se stai sviluppando con Laravel e ti sei imbattuto nell’errore “419 Page Expired”, sei nel posto giusto. In questa guida pratica ti spiegherò come risolvere definitivamente questo fastidioso problema che affligge molti sviluppatori italiani.
Se invece sei incappato in altri errori di Laravel, ti invito a visitare la Guida agli errori piu comuni di Laravel.
Cos’è l’errore “419 Page Expired” in Laravel?
L’errore 419 è strettamente legato alla protezione CSRF (Cross-Site Request Forgery) di Laravel. Si verifica quando il token di sicurezza CSRF non è valido o è scaduto durante l’invio di un form.
Cause Principali dell’Errore 419
Le cause più comuni di questo errore nel framework Laravel sono:
- Scadenza della sessione: Hai lasciato la pagina aperta troppo a lungo
- Mancanza della direttiva @csrf: Non hai inserito il token CSRF nel form
- Configurazione errata: Problemi con cookies o sessioni
- Cache del browser: Conflitti con la cache memorizzata
1. Verifica la Presenza del Token CSRF
In Laravel, ogni form deve avere il token csrf per consentire al server di idnetificarti correttamente.
<form method="POST" action="/esempio">
@csrf
<!-- resto del form -->
</form>
oppure:
<form method="POST" action="/esempio">
<input type="hidden" name="_token" value="{{ csrf_token() }}" autocomplete="off">
<!-- resto del form -->
</form>
oppure, ancora:
<form method="POST" action="/esempio">
{{ csrf_field() }}
<!-- resto del form -->
</form>
2. Controlla la Configurazione delle Sessioni
Assicurati che il file config/session.php
sia configurato correttamente:
'lifetime' => 120,
'expire_on_close' => false,
3. Gestione Delle Eccezioni
Per escludere alcune pagine dalla protezione CSRF, modifica il file app/Http/Middleware/VerifyCsrfToken.php
:
protected $except = [
'pagina-da-escludere',
'altra-pagina/*'
];
4. Pulisci la Cache della Applicazione
In ultimo, potrebbe essersi corrotta la cache della Applicazione stessa. Cancella tutti i file in cache e rigenerali:
php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan config:cache
php artisan route:cache
Prevenzione dell’Errore 419
Per prevenire futuri errori:
- Implementa sempre la direttiva @csrf nei form
- Configura correttamente il lifetime delle sessioni
- Mantieni aggiornato Laravel all’ultima versione
- Verifica regolarmente i log degli errori
FAQ Frequenti
D: L’errore persiste dopo aver aggiunto @csrf, cosa faccio? R: Prova a cancellare la cache del browser e i cookies, poi riavvia la sessione.
D: È sicuro disabilitare la protezione CSRF? R: No, è consigliabile mantenerla attiva e gestire correttamente i token invece di disabilitarla.
D: Come gestisco l’errore in chiamate API? R: Per le API, puoi utilizzare i token di autenticazione invece del CSRF o escludere specifici endpoint.
Conclusione
L’errore 419 in Laravel è facilmente risolvibile seguendo le best practice di sicurezza del framework. Ricorda sempre di implementare correttamente la protezione CSRF per mantenere le tue applicazioni sicure.