Prima di leggere di seguito assicurati di avere @csrfo {{ csrf_field() }}nella tua forma
come
<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>
Viene visualizzato il messaggio di errore Sessione scaduta o 419 Pagina scaduta in larvel perché da qualche parte la verifica del token csrf non riesce, il che significa che il App\Http\Middleware\VerifyCsrfToken::classmiddleware è già attivato. Nella forma @csrfè già stata aggiunta la direttiva blade, il che dovrebbe andare bene.
Quindi l'altra area da controllare è la sessione. La csrfverifica del token è direttamente coinvolta nella tua sessione, quindi potresti voler controllare se il tuo driver di sessione funziona o meno, ad esempio un Redis configurato in modo errato potrebbe causare un problema.
Forse puoi provare a cambiare il tuo driver / software di sessione dal tuo .envfile, i driver supportati sono forniti di seguito
Driver di sessione supportati in Laravel 5, Laravel 6 e Laravel 7 (Doc Link)
file - le sessioni vengono archiviate in storage / framework / sessioni.
cookie - le sessioni vengono memorizzate in cookie protetti e crittografati.
database - le sessioni sono archiviate in un database relazionale.
memcached/ redis- le sessioni sono archiviate in uno di questi veloci archivi basati sulla cache.
array - le sessioni vengono memorizzate in un array PHP e non verranno mantenute.
Se il tuo modulo funziona dopo aver cambiato il driver della sessione, allora c'è qualcosa di sbagliato in quel particolare driver, prova a correggere l'errore da lì.
Possibili scenari soggetti a errori
Probabilmente le sessioni basate su file potrebbero non funzionare a causa dei problemi di autorizzazione con la /storagedirectory (una rapida ricerca su Google ti porterà la soluzione), ricorda inoltre che mettere 777 per la directory non è mai la soluzione.
Nel caso del driver del database, la connessione al database potrebbe essere errata o la sessionstabella potrebbe non esistere o configurata in modo errato (la parte di configurazione errata è stata confermata come un problema secondo il commento di @Junaid Qadir).
redis/memcached la configurazione è errata o viene manipolata contemporaneamente da qualche altra parte di codice nel sistema.
Potrebbe essere una buona idea eseguire php artisan key:generatee generare una nuova chiave dell'app che, a sua volta, svuoterà i dati della sessione.
Cancella la cache del browser HARD , ho scoperto che Chrome e Firefox sono i colpevoli più di quanto possa ricordare.
Ulteriori informazioni sul motivo per cui le chiavi dell'applicazione sono importanti
return;te puoi chiamarereturn redirect()->back();. Da quello che posso vedere, l'app non ha nulla a che fare dopo la richiesta del post. Forse puoi reindirizzarlo a una vista dopo aver elaborato la richiesta.