Mengatasi Error "419 Page Expired" Saat Login di Laravel 8
Error "419 Page Expired" sering muncul saat Anda mencoba login ke aplikasi Laravel. Error ini biasanya terjadi karena token CSRF (Cross-Site Request Forgery) Anda sudah kedaluwarsa.
Berikut beberapa penyebab dan solusi untuk mengatasi error ini:
Penyebab Error "419 Page Expired"
- Token CSRF Kadaluwarsa: Token CSRF memiliki masa berlaku tertentu. Jika Anda terlalu lama berada di halaman login atau melakukan aktivitas lain yang memperlambat proses, token mungkin sudah kadaluwarsa sebelum Anda mengirim form login.
- Konfigurasi Timeout Token CSRF: Konfigurasi timeout token CSRF di Laravel mungkin terlalu pendek, sehingga token kadaluwarsa dengan cepat.
- Cache Browser: Browser Anda menyimpan data cache, termasuk token CSRF. Jika cache browser tidak dihapus secara berkala, token lama mungkin digunakan, menyebabkan error "419 Page Expired".
Solusi Mengatasi Error "419 Page Expired"
-
Refresh Halaman Login: Cara paling sederhana adalah dengan me-refresh halaman login. Ini akan menghasilkan token CSRF baru dan kemungkinan mengatasi masalah.
-
Hapus Cache Browser: Hapus cache dan data browsing di browser Anda untuk memastikan Anda menggunakan token CSRF yang terbaru.
-
Perpanjang Timeout Token CSRF: Anda dapat memperpanjang timeout token CSRF di file
config/session.php
:'expire_on_close' => true, 'lifetime' => 120, // Atur waktu timeout dalam menit (default: 120)
-
Gunakan Middleware "VerifyCsrfToken": Pastikan middleware
VerifyCsrfToken
diaktifkan di fileapp/Http/Kernel.php
:protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // ... \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class, // ... ], // ... ];
-
Nonaktifkan CSRF untuk Rute Tertentu: Jika Anda mengalami masalah CSRF pada rute tertentu yang tidak memerlukan verifikasi CSRF, Anda dapat menonaktifkannya dengan menggunakan
@csrf_field()
dalam view Anda. -
Gunakan Axios dengan
withCredentials: true
: Jika Anda menggunakan Axios untuk membuat request Ajax, pastikan Anda mengaktifkanwithCredentials: true
untuk mengirimkan token CSRF bersama request:axios.post('/login', { // ... data form ... }, { withCredentials: true }) .then(response => { // ... handle response ... }) .catch(error => { // ... handle error ... });
Kesimpulan
Error "419 Page Expired" biasanya disebabkan oleh token CSRF yang kadaluwarsa. Dengan menerapkan solusi di atas, Anda dapat mengatasi masalah ini dan memastikan aplikasi Laravel Anda berfungsi dengan baik.