Wenn Sie versuchen, RESTful-APIs mit Laravel zu entwickeln, stoßen Sie möglicherweise auf einen 419-Statuscode für POST- und PUT-Methoden Methoden. Dieses Problem ist auf den CSRF-Schutz von Laravel zurückzuführen, der darauf abzielt, Cross-Site-Request-Forgery-Angriffe (CSRF) zu verhindern.
Die web.php-Routen von Laravel sind standardmäßig durch CSRF-Tokens geschützt. Mit CSRF-Tokens kann sichergestellt werden, dass eine Anfrage von einer legitimen Quelle und nicht von einem böswilligen Benutzer stammt. Wenn POST- oder PUT-Anfragen nicht das richtige CSRF-Token enthalten, gibt Laravel einen 419-Statuscode zurück.
Wenn Sie web.php-Routen für die API verwenden Endpunkte können Sie vom CSRF-Schutz ausschließen, indem Sie sie der Eigenschaft $exclusive der VerifyCsrfToken-Middleware hinzufügen.
<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>
Wenn ja Bei Verwendung von Laravel Version 5.4 oder höher wird empfohlen, die Datei api.php für API-Routen zu verwenden. In api.php definierte Routen werden automatisch vom CSRF-Schutz ausgeschlossen.
Sie können den CSRF-Schutz für bestimmte Methoden innerhalb einer Routengruppe deaktivieren.
<code class="php">Route::group(['middleware' => ['api', 'without_csrf_token']], function () { Route::post('/store', 'RestController@store'); Route::put('/update/{id}', 'RestController@update'); });</code>
Indem Sie Routen vom CSRF-Schutz ausschließen oder ihn für bestimmte Methoden deaktivieren, können Sie das Problem mit dem Statuscode 419 lösen. Denken Sie daran, den CSRF-Schutz nur bei Bedarf zu deaktivieren, da es sich um eine wichtige Sicherheitsmaßnahme für vom Benutzer übermittelte Formulare handelt.
Das obige ist der detaillierte Inhalt vonWie kann der 419-Statuscode für POST- und PUT-Methoden in Laravel aufgrund des CSRF-Schutzes aufgelöst werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!