"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Qué causa el código de estado 419 en Laravel para los métodos POST y PUT?

¿Qué causa el código de estado 419 en Laravel para los métodos POST y PUT?

Publicado el 2024-11-06
Navegar:812

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

Comprensión del código de estado 419 para los métodos POST y PUT en la API de Laravel

Al desarrollar una API RESTful usando Laravel, es común encontrar el 419 Código de estado para los métodos POST y PUT. Este error se produce debido al proceso de verificación del token CSRF de Laravel.

En Laravel 5.4 y versiones anteriores, los tokens CSRF están habilitados para todas las solicitudes, incluidos los métodos POST y PUT. Esto es para proteger la aplicación de ataques de falsificación de solicitudes entre sitios (CSRF). De forma predeterminada, los tokens CSRF se agregan a la vista como campos ocultos dentro de los formularios.

Cuando se envía una solicitud POST o PUT, Laravel espera recibir un token CSRF válido junto con los datos de la solicitud. Si no se encuentra un token válido, Laravel genera una excepción de "no coincidencia de token CSRF 419" y devuelve una respuesta de código de estado 419.

Excluyendo rutas de la protección CSRF

Para Para resolver este problema, puede excluir ciertas rutas de la verificación del token CSRF. En Laravel 5.5 y superior, puedes usar el archivo api.php en lugar de web.php para rutas API, y la verificación CSRF no está habilitada de forma predeterminada.

Si estás usando web.php para rutas API, Puede excluirlos de la verificación del token CSRF agregando sus URI a la propiedad $except del middleware VerifyCsrfToken. Por ejemplo:

namespace App\Http\Middleware;

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

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

Esto excluirá todas las rutas que comiencen con /api de la verificación del token CSRF.

Solución alternativa para rutas que no son API

Si se excluyen rutas de La protección CSRF no es adecuada; puede desactivar la verificación CSRF para métodos específicos dentro de un grupo de rutas. Por ejemplo:

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

Esto deshabilitará la verificación del token CSRF para la solicitud POST a /mi-ruta.

Declaración de liberación Este artículo se reimprime en: 1729254976 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3