Mengatasi error TokenMismatchException in VerifyCsrfToken.php di laravel

Posted on Posted in Artikel

Apakah anda pernah menggunakan laraval? Ya. Laravel adalah salah satu framework php yang paling banyak digunakan saat ini. Sehingga jika anda adalah seorang Web Developer terutama jika anda bekerja dengan PHP, sangat disarankan untuk mempelajari framework ini.

Kali ini saya akan membahas tentang sebuah error di laravel yang saya temui yaitu seperti ini : 

​TokenMismatchException in VerifyCsrfToken.php

Apa maksud dari error ini? Saya akan membahasnya.

Dilaravel ada sebuah tools yang bernama CsrfToken, token ini berguna untuk memverifikasi sebuah form/request.

Nah, error diatas tejadi karena ada sebuah form/request yang tidak menggunakan/mengikutkan CsrfToken didalamnya.

Nah, bagaimana solusinya? Ada 2 cara untuk mengatasi masalah ini. Yang paling mudah adalah dengan menonaktifkan tools CsrfToken pada laravel, sehingga semua form tidak diharuskan untuk menggunakan CsrfToken.

Caranya dengan meng-comment text

\App\Http\Middleware\VerifyCsrfToken::class

Menjadi seperti ini : 

/*\App\Http\Middleware\VerifyCsrfToken::class*/

Kode tersebut dapat ditemukan di direktori : 

app\http\kernel.php

Nah, cara ini akan berhasil, tapi cara ini tidak aman. Karena sebenarnya CsrfToken berguna untuk mengamankan form/request, supaya form/request dari luar(tidak mempunyai CsrfToken) tidak bisa mendapatkan response. Jadi fungsi dari CsrfToken adalah untuk memastikan bahwa form/request benar-benar berasal dari program laravel itu sendiri.

Nah, oleh karena itu saya lebih merekomendasikan cara yang kedua ini, jika anda mendapati error tersebut.

Cara kedua yaitu dengan menambahkan CsrfToken pada setiap form yang kita buat dilaravel. Adapun untuk menambahkan CsrfToken dapat dilakukan dengan menambahkan kode ini disetiap form yang kita buat :

{{ csrf_field() }}

Ketik kode tersebut disetiap form yang kita buat, ketik didalam tag form.

Sekian. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *