Sebelum membaca di bawah ini pastikan Anda memiliki @csrf
atau {{ csrf_field() }}
dalam bentuk
seperti Anda
<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>
Pesan kesalahan Session Expired atau 419 Page Expired di larvel muncul karena di suatu tempat verifikasi token csrf Anda gagal yang berarti App\Http\Middleware\VerifyCsrfToken::class
middleware sudah dihidupkan. Dalam bentuk @csrf
petunjuk bilah sudah ditambahkan, yang seharusnya juga bagus.
Kemudian area lain yang harus diperiksa adalah sesi. The csrf
token verifikasi secara langsung terlibat dengan sesi Anda, Jadi Anda mungkin ingin memeriksa apakah pengemudi sesi Anda bekerja atau tidak, seperti Redis tidak dikonfigurasi dengan benar dapat menyebabkan masalah.
Mungkin Anda dapat mencoba mengalihkan driver sesi / perangkat lunak dari .env
file Anda , driver yang didukung diberikan di bawah ini
Driver Sesi yang Didukung di Laravel 5, Laravel 6 dan Laravel 7 (Doc Link)
file
- sesi disimpan dalam penyimpanan / kerangka / sesi.
cookie
- sesi disimpan dalam cookie terenkripsi yang aman.
database
- sesi disimpan dalam database relasional.
memcached
/ redis
- sesi disimpan di salah satu penyimpanan berbasis cache yang cepat ini.
array
- sesi disimpan dalam array PHP dan tidak akan dipertahankan.
Jika formulir Anda berfungsi setelah mengganti driver sesi, maka ada yang salah dengan driver tersebut, coba perbaiki kesalahan dari sana.
Skenario rawan kesalahan yang mungkin terjadi
Mungkin sesi berbasis file mungkin tidak berfungsi karena masalah izin dengan /storage
direktori (googling cepat akan memberi Anda solusi), ingat juga meletakkan 777 untuk direktori bukanlah solusi.
Dalam kasus pengandar database, koneksi DB Anda mungkin salah, atau sessions
tabel mungkin tidak ada atau salah dikonfigurasi (bagian konfigurasi yang salah dikonfirmasi menjadi masalah sesuai komentar oleh @Junaid Qadir).
redis/memcached
konfigurasi salah atau sedang dimanipulasi oleh beberapa bagian kode lain di sistem pada saat yang bersamaan.
Mungkin ada baiknya untuk mengeksekusi php artisan key:generate
dan membuat kunci aplikasi baru yang akan, pada gilirannya, menghapus data sesi.
Bersihkan Cache Browser SULIT , saya menemukan chrome dan firefox sebagai penyebabnya lebih dari yang dapat saya ingat.
Baca lebih lanjut tentang mengapa kunci aplikasi penting
return;
Anda bisa meneleponreturn redirect()->back();
. Dari apa yang saya lihat, aplikasi tidak ada hubungannya setelah permintaan posting. Mungkin Anda bisa mengarahkannya ke tampilan setelah memproses permintaan.