"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O que causa o código de status 419 no Laravel para métodos POST e PUT?

O que causa o código de status 419 no Laravel para métodos POST e PUT?

Publicado em 2024-11-06
Navegar:351

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

Compreendendo o código de status 419 para métodos POST e PUT na API Laravel

Ao desenvolver uma API RESTful usando Laravel, é comum encontrar o 419 código de status para métodos POST e PUT. Este erro ocorre devido ao processo de verificação do token CSRF do Laravel.

No Laravel 5.4 e versões anteriores, os tokens CSRF estão habilitados para todas as solicitações, incluindo os métodos POST e PUT. Isso protege o aplicativo contra ataques de falsificação de solicitação entre sites (CSRF). Por padrão, os tokens CSRF são adicionados à visualização como campos ocultos nos formulários.

Quando uma solicitação POST ou PUT é enviada, o Laravel espera receber um token CSRF válido junto com os dados da solicitação. Se um token válido não for encontrado, o Laravel gera uma exceção "419 CSRF token mismatch" e retorna uma resposta de código de status 419.

Excluindo rotas da proteção CSRF

Para Para resolver esse problema, você pode excluir determinadas rotas da verificação do token CSRF. No Laravel 5.5 e superior, você pode usar o arquivo api.php em vez de web.php para rotas de API, e a verificação CSRF não está habilitada por padrão.

Se você estiver usando web.php para rotas de API, você pode excluí-los da verificação do token CSRF adicionando seus URIs à propriedade $except do middleware VerifyCsrfToken. Por exemplo:

namespace App\Http\Middleware;

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

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

Isso excluirá todas as rotas que começam com /api da verificação do token CSRF.

Solução alternativa para rotas não API

Se excluir rotas de A proteção CSRF não é adequada, você pode desabilitar a verificação CSRF para métodos específicos dentro de um grupo de rotas. Por exemplo:

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

Isso desativará a verificação do token CSRF para a solicitação POST para /my-route.

Declaração de lançamento Este artigo foi reimpresso em: 1729254976 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3