


Was verursacht den Statuscode 419 in Laravel für POST- und PUT-Methoden?
Oct 18, 2024 pm 08:37 PMVerstehen des 419-Statuscodes für POST- und PUT-Methoden in der Laravel-API
Bei der Entwicklung einer RESTful-API mit Laravel stößt man häufig auf den 419 Statuscode für POST- und PUT-Methoden. Dieser Fehler tritt aufgrund des CSRF-Token-Verifizierungsprozesses von Laravel auf.
In Laravel 5.4 und früheren Versionen sind CSRF-Tokens für alle Anfragen aktiviert, einschließlich POST- und PUT-Methoden. Dies dient dazu, die Anwendung vor Cross-Site-Request-Forgery-Angriffen (CSRF) zu schützen. Standardmäßig werden CSRF-Tokens der Ansicht als versteckte Felder in Formularen hinzugefügt.
Wenn eine POST- oder PUT-Anfrage gesendet wird, erwartet Laravel, zusammen mit den Anfragedaten ein gültiges CSRF-Token zu erhalten. Wenn kein gültiges Token gefunden wird, generiert Laravel eine „419 CSRF-Token-Nichtübereinstimmung“-Ausnahme und gibt eine 419-Statuscode-Antwort zurück.
Routen vom CSRF-Schutz ausschließen
An Um dieses Problem zu beheben, können Sie bestimmte Routen von der CSRF-Token-Überprüfung ausschließen. In Laravel 5.5 und höher können Sie die Datei api.php anstelle von web.php für API-Routen verwenden, und die CSRF-Überprüfung ist standardmäßig nicht aktiviert.
Wenn Sie web.php für API-Routen verwenden, müssen Sie Sie können sie von der CSRF-Token-Überprüfung ausschließen, indem Sie ihre URIs zur $exclusive-Eigenschaft der VerifyCsrfToken-Middleware hinzufügen. Zum Beispiel:
<code class="php">namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { protected $except = [ '/api/*', ]; }</code>
Dadurch werden alle Routen, die mit /api beginnen, von der CSRF-Token-Überprüfung ausgeschlossen.
Alternative Lösung für Nicht-API-Routen
Wenn der Ausschluss von Routen vom CSRF-Schutz nicht geeignet ist, können Sie die CSRF-Überprüfung für bestimmte Methoden innerhalb einer Routengruppe deaktivieren. Zum Beispiel:
<code class="php">Route::group(['middleware' => 'web'], function () { Route::post('/my-route', 'MyController@store')->withoutMiddleware('verify-csrf-token'); });</code>
Dadurch wird die CSRF-Token-Überprüfung für die POST-Anfrage an /my-route deaktiviert.
Das obige ist der detaillierte Inhalt vonWas verursacht den Statuscode 419 in Laravel für POST- und PUT-Methoden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

11 beste PHP -URL -Shortener -Skripte (kostenlos und Premium)

Arbeiten mit Flash -Sitzungsdaten in Laravel

Vereinfachte HTTP -Reaktion verspottet in Laravel -Tests

Erstellen Sie eine React -App mit einem Laravel -Back -Ende: Teil 2, reagieren

Curl in PHP: So verwenden Sie die PHP -Curl -Erweiterung in REST -APIs

12 Beste PHP -Chat -Skripte auf Codecanyon
