419 Page Expired Laravel Login Laravel 8

4 min read Jul 01, 2024
419 Page Expired Laravel Login Laravel 8

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"

  1. 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.
  2. Konfigurasi Timeout Token CSRF: Konfigurasi timeout token CSRF di Laravel mungkin terlalu pendek, sehingga token kadaluwarsa dengan cepat.
  3. 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"

  1. Refresh Halaman Login: Cara paling sederhana adalah dengan me-refresh halaman login. Ini akan menghasilkan token CSRF baru dan kemungkinan mengatasi masalah.

  2. Hapus Cache Browser: Hapus cache dan data browsing di browser Anda untuk memastikan Anda menggunakan token CSRF yang terbaru.

  3. 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)
    
  4. Gunakan Middleware "VerifyCsrfToken": Pastikan middleware VerifyCsrfToken diaktifkan di file app/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,
            // ...
        ],
        // ...
    ];
    
  5. 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.

    @csrf_field()
  6. Gunakan Axios dengan withCredentials: true: Jika Anda menggunakan Axios untuk membuat request Ajax, pastikan Anda mengaktifkan withCredentials: 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.

Latest Posts