Maison >développement back-end >tutoriel php >Comment résoudre le code d'état 419 pour les méthodes POST et PUT dans Laravel en raison de la protection CSRF ?
Lorsque vous essayez de développer des API RESTful à l'aide de Laravel, vous pouvez rencontrer un code d'état 419 sur POST et PUT méthodes. Ce problème provient de la protection CSRF de Laravel, qui vise à empêcher les attaques de falsification de requêtes intersites (CSRF).
Les routes web.php de Laravel sont protégées par défaut par des jetons CSRF. Les jetons CSRF sont un moyen de garantir qu'une requête provient d'une source légitime et non d'un utilisateur malveillant. Lorsque les requêtes POST ou PUT ne contiennent pas le bon jeton CSRF, Laravel renvoie un code d'état 419.
Si vous utilisez les routes web.php pour l'API points de terminaison, vous pouvez les exclure de la protection CSRF en les ajoutant à la propriété $sauf du middleware VerifyCsrfToken.
<code class="php">namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'api/*', // Exclude all API routes from CSRF protection ]; }</code>
Si vous êtes en utilisant Laravel version 5.4 ou supérieure, il est recommandé d'utiliser le fichier api.php pour les routes API. Les routes définies dans api.php sont automatiquement exclues de la protection CSRF.
Vous pouvez désactiver la protection CSRF pour des méthodes spécifiques au sein d'un groupe de routes.
<code class="php">Route::group(['middleware' => ['api', 'without_csrf_token']], function () { Route::post('/store', 'RestController@store'); Route::put('/update/{id}', 'RestController@update'); });</code>
En excluant les routes de la protection CSRF ou en la désactivant pour des méthodes spécifiques, vous pouvez résoudre le problème du code d'état 419. N'oubliez pas de désactiver la protection CSRF uniquement lorsque cela est nécessaire, car il s'agit d'une mesure de sécurité importante pour les formulaires soumis par les utilisateurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!