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.
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