Comprendre le code d'état 419 pour les méthodes POST et PUT dans l'API Laravel
Lors du développement d'une API RESTful à l'aide de Laravel, il est courant de rencontrer le 419 code d'état pour les méthodes POST et PUT. Cette erreur se produit en raison du processus de vérification des jetons CSRF de Laravel.
Dans Laravel 5.4 et les versions antérieures, les jetons CSRF sont activés pour toutes les requêtes, y compris les méthodes POST et PUT. Il s'agit de protéger l'application contre les attaques de falsification de requêtes intersites (CSRF). Par défaut, les jetons CSRF sont ajoutés à la vue sous forme de champs masqués dans les formulaires.
Lorsqu'une requête POST ou PUT est soumise, Laravel s'attend à recevoir un jeton CSRF valide avec les données de la requête. Si un jeton valide n'est pas trouvé, Laravel génère une exception « 419 incompatibilité de jeton CSRF » et renvoie une réponse de code d'état 419.
Exclusion des routes de la protection CSRF
À Pour résoudre ce problème, vous pouvez exclure certaines routes de la vérification du jeton CSRF. Dans Laravel 5.5 et supérieur, vous pouvez utiliser le fichier api.php au lieu de web.php pour les routes API, et la vérification CSRF n'est pas activée par défaut.
Si vous utilisez web.php pour les routes API, vous peut les exclure de la vérification des jetons CSRF en ajoutant leurs URI à la propriété $sauf du middleware VerifyCsrfToken. Par exemple :
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
protected $except = [
'/api/*',
];
}
Cela exclura toutes les routes commençant par /api de la vérification du jeton CSRF.
Solution alternative pour les routes non API
Si vous excluez les routes de La protection CSRF n'est pas adaptée, vous pouvez désactiver la vérification CSRF pour des méthodes spécifiques au sein d'un groupe de routage. Par exemple :
Route::group(['middleware' => 'web'], function () {
Route::post('/my-route', 'MyController@store')->withoutMiddleware('verify-csrf-token');
});
Cela désactivera la vérification du jeton CSRF pour la requête POST vers /my-route.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3