Понимание кода состояния 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.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3