Apa yang Menyebabkan Kod Status 419 dalam Laravel untuk Kaedah POST dan PUT?

Linda Hamilton
Lepaskan: 2024-10-18 20:37:03
asal
136 orang telah melayarinya

What Causes the 419 Status Code in Laravel for POST and PUT Methods?

Memahami Kod Status 419 untuk Kaedah POST dan PUT dalam API Laravel

Apabila membangunkan API RESTful menggunakan Laravel, adalah perkara biasa untuk menemui 419 kod status untuk kaedah POST dan PUT. Ralat ini berlaku disebabkan oleh proses pengesahan token CSRF Laravel.

Dalam Laravel 5.4 dan versi terdahulu, token CSRF didayakan untuk semua permintaan, termasuk kaedah POST dan PUT. Ini adalah untuk melindungi aplikasi daripada serangan pemalsuan permintaan silang tapak (CSRF). Secara lalai, token CSRF ditambahkan pada paparan sebagai medan tersembunyi dalam borang.

Apabila permintaan POST atau PUT diserahkan, Laravel menjangkakan untuk menerima token CSRF yang sah bersama-sama data permintaan. Jika token yang sah tidak ditemui, Laravel menjana pengecualian "419 CSRF token mispatch" dan mengembalikan respons kod status 419.

Mengecualikan Laluan daripada CSRF Protection

Kepada menyelesaikan isu ini, anda boleh mengecualikan laluan tertentu daripada pengesahan token CSRF. Dalam Laravel 5.5 dan ke atas, anda boleh menggunakan fail api.php dan bukannya web.php untuk laluan API dan pengesahan CSRF tidak didayakan secara lalai.

Jika anda menggunakan web.php untuk laluan API, anda boleh mengecualikan mereka daripada pengesahan token CSRF dengan menambahkan URI mereka pada harta $except bagi perisian tengah VerifyCsrfToken. Contohnya:

<code class="php">namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;

class VerifyCsrfToken extends BaseVerifier
{
    protected $except = [
        '/api/*',
    ];
}</code>
Salin selepas log masuk

Ini akan mengecualikan semua laluan bermula dengan /api daripada pengesahan token CSRF.

Penyelesaian Alternatif untuk Laluan Bukan API

Jika mengecualikan laluan daripada perlindungan CSRF tidak sesuai, anda boleh melumpuhkan pengesahan CSRF untuk kaedah tertentu dalam kumpulan laluan. Contohnya:

<code class="php">Route::group(['middleware' => 'web'], function () {
    Route::post('/my-route', 'MyController@store')->withoutMiddleware('verify-csrf-token');
});</code>
Salin selepas log masuk

Ini akan melumpuhkan pengesahan token CSRF untuk permintaan POST ke /my-route.

Atas ialah kandungan terperinci Apa yang Menyebabkan Kod Status 419 dalam Laravel untuk Kaedah POST dan PUT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!