«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Что вызывает код состояния 419 в Laravel для методов POST и PUT?

Что вызывает код состояния 419 в Laravel для методов POST и PUT?

Опубликовано 6 ноября 2024 г.
Просматривать:662

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

Понимание кода состояния 419 для методов POST и PUT в Laravel API

При разработке RESTful API с использованием Laravel часто встречается ошибка 419 код состояния для методов POST и PUT. Эта ошибка возникает из-за процесса проверки токена CSRF в Laravel.

В Laravel 5.4 и более ранних версиях токены CSRF включены для всех запросов, включая методы POST и PUT. Это необходимо для защиты приложения от атак с подделкой межсайтовых запросов (CSRF). По умолчанию токены CSRF добавляются в представление как скрытые поля в формах.

Когда отправляется запрос POST или PUT, Laravel ожидает получить действительный токен CSRF вместе с данными запроса. Если действительный токен не найден, Laravel генерирует исключение «419 CSRF token несоответствие» и возвращает ответ с кодом состояния 419.

Исключение маршрутов из защиты CSRF

To Чтобы решить эту проблему, вы можете исключить определенные маршруты из проверки токена CSRF. В Laravel 5.5 и более поздних версиях вы можете использовать файл api.php вместо web.php для маршрутов API, а проверка CSRF не включена по умолчанию.

Если вы используете web.php для маршрутов API, вы может исключить их из проверки токена CSRF, добавив их URI в свойство $Exception промежуточного программного обеспечения VerifyCsrfToken. Например:

namespace App\Http\Middleware;

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

class VerifyCsrfToken extends BaseVerifier
{
    protected $except = [
        '/api/*',
    ];
}

Это исключит все маршруты, начинающиеся с /api, из проверки токена CSRF.

Альтернативное решение для маршрутов без API

Если исключить маршруты из Защита CSRF не подходит, вы можете отключить проверку CSRF для определенных методов внутри группы маршрутов. Например:

Route::group(['middleware' => 'web'], function () {
    Route::post('/my-route', 'MyController@store')->withoutMiddleware('verify-csrf-token');
});

Это отключит проверку токена CSRF для запроса POST к /my-route.

Заявление о выпуске Эта статья перепечатана по адресу: 1729254976. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3