Anfrage in Laravel posten - Fehler - 419 Entschuldigung, Ihre Sitzung / 419 Ihre Seite ist abgelaufen

88

Ich habe Laravel 5.7 installiert

Der Datei wurde ein Formular hinzugefügt \resources\views\welcome.blade.php

<form method="POST" action="/foo" >
    @csrf
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>
</form>

Zur Datei hinzugefügt \routes\web.php

Route::post('/foo', function () {
    echo 1;
    return;
});

Nach dem Senden einer POST-Anfrage:

419 Entschuldigung, Ihre Sitzung ist abgelaufen. Bitte aktualisieren und erneut versuchen.

In der Version 5.6gab es kein solches Problem.

Thủ Thuật Máy Tính
quelle
Haben Sie versucht, eine Weiterleitung hinzuzufügen? Stattdessen return;können Sie anrufen return redirect()->back();. Soweit ich sehen kann, hat die App nach der Post-Anfrage nichts mehr zu tun. Möglicherweise können Sie es nach der Verarbeitung der Anforderung in eine Ansicht umleiten.
Dcangulo
1
Ich habe das gleiche Problem. Wenn ich auf Datenbanksitzung wechseln dies geschieht , und wenn ich zu ändern zurück filefür SESSION_DRIVERin .enves funktioniert gut. Warum funktioniert die datenbankbasierte Sitzung nicht?
Junaid Qadir
Ich habe Ihren genauen Code in eine neue Laravel 5.7-Installation kopiert. Es funktionierte. Es gibt anderswo ein Problem.
Kyle Wardle
Dieses Problem aufgrund eines Token-Problems. Ich habe versucht, denselben Code wie diesen auszuführen, erhalte jedoch keine Fehlermeldung. Sie sollten weitere Informationen wie Ihren Sitzungstreiber und die Anzeige des _token-Werts im Formular angeben. Sie können sich auch in dieser Dateizeile vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php67 debuggen, um zu erfahren, warum
Bangnokia
1
Mir wurde klar, dass ich den sessionsTisch für einen anderen Zweck benutzt hatte. Nachdem Sie diesen Tabellennamen in einen geeigneteren geändert und die artisan session:tableMigration ausgeführt und aktualisiert haben, funktioniert alles einwandfrei
Junaid Qadir

Antworten:

114

Bevor Sie unten lesen, stellen Sie sicher, dass Sie @csrfoder {{ csrf_field() }}in Ihrer Form mögen

<form method="post">
@csrf <!-- {{ csrf_field() }} -->
... rest of form ...
</form>

Die Fehlermeldung "Sitzung abgelaufen" oder "Seite abgelaufen" in larvel wird angezeigt, weil irgendwo die Überprüfung Ihres CSRF-Tokens fehlschlägt, was bedeutet, dass die App\Http\Middleware\VerifyCsrfToken::classMiddleware bereits aktiviert ist. In der Form ist die @csrfBlade-Direktive bereits hinzugefügt, was ebenfalls in Ordnung sein sollte.

Der andere zu überprüfende Bereich ist die Sitzung. Die csrfToken-Überprüfung ist direkt mit Ihrer Sitzung verbunden. Daher möchten Sie möglicherweise überprüfen, ob Ihr Sitzungstreiber funktioniert oder nicht, z. B. wenn ein falsch konfigurierter Redis ein Problem verursacht.

Möglicherweise können Sie versuchen, Ihren Sitzungstreiber / Ihre Sitzungssoftware aus Ihrer .envDatei zu wechseln. Die unterstützten Treiber sind unten angegeben

Unterstützte Session-Treiber in Laravel 5, Laravel 6 und Laravel 7 (Doc Link)

  • file - Sitzungen werden in Speicher / Framework / Sitzungen gespeichert.
  • cookie - Sitzungen werden in sicheren, verschlüsselten Cookies gespeichert.
  • database - Sitzungen werden in einer relationalen Datenbank gespeichert.
  • memcached/ redis- Sitzungen werden in einem dieser schnellen, Cache-basierten Speicher gespeichert.
  • array - Sitzungen werden in einem PHP-Array gespeichert und nicht beibehalten.

Wenn Ihr Formular nach dem Wechseln des Sitzungstreibers funktioniert, stimmt etwas mit diesem bestimmten Treiber nicht. Versuchen Sie, den Fehler von dort aus zu beheben.

Mögliche fehleranfällige Szenarien

  • Wahrscheinlich funktionieren dateibasierte Sitzungen aufgrund von Berechtigungsproblemen mit dem /storageVerzeichnis möglicherweise nicht (ein schnelles Googeln bringt Ihnen die Lösung). Denken Sie auch daran, dass 777 für das Verzeichnis niemals die Lösung ist.

  • Im Fall des Datenbanktreibers ist Ihre DB-Verbindung möglicherweise falsch oder die sessionsTabelle ist möglicherweise nicht vorhanden oder falsch konfiguriert (der falsche Konfigurationsteil wurde gemäß dem Kommentar von @Junaid Qadir als Problem bestätigt).

  • redis/memcached Die Konfiguration ist falsch oder wird gleichzeitig von einem anderen Code im System manipuliert.

Es ist möglicherweise eine gute Idee, php artisan key:generateeinen neuen App-Schlüssel auszuführen und zu generieren, der wiederum die Sitzungsdaten löscht.

Clear Browser Cache HARD , ich fand, dass Chrome und Firefox mehr als ich mich erinnern kann ein Schuldiger sind.

Lesen Sie mehr darüber, warum Anwendungsschlüssel wichtig sind

Shobi
quelle
1
Manchmal ist es nur so, dass Browser, hauptsächlich Chrome, den Set-Cookie-Sitzungswert nicht setzen, weil er fehlerhaft oder nicht standardisiert ist. Daher findet Laravel keinen vorhandenen Sitzungswert aus der HTTP-Anforderung, um ihn mit dem _tokenvom FORMULAR empfangenen Wert zu vergleichen . Vermeiden Sie die Verwendung SESSION_DOMAIN=...mit IP, die von Chrome- und HTTP-Cookie-Spezifikationen als unsicher eingestuft wird.
KeitelDOG
Ich habe das gleiche Problem, aber ich erhalte den Fehler nicht ständig. Es kommt nur von Zeit zu Zeit vor. Ich denke, das bedeutet, dass es kein Problem mit dem Sitzungstreiber gibt, da er 99% der Zeit funktioniert. Aber ich betreibe eine Live-App und bekomme von Zeit zu Zeit Beschwerden von Kunden. Es ist jedoch sehr selten. Ich verwende den Dateisitzungstreiber. Weiß jemand, warum dies in meinem Fall passiert? Vielen Dank
TheAngelM97
@ TheAngelM97 Sie können diesen Fehler einfach reproduzieren, indem Sie entweder zur Anmelde- oder zur Registrierungsseite gehen. Tun Sie vielleicht länger als 30 Minuten nichts. Wenn Sie dann auf Senden klicken, wird das 419 Page Expiredangezeigt. Wie können Sie einem einfachen Benutzer aus Gründen der Benutzerfreundlichkeit mitteilen, was gerade passiert ist und wie Sie es lösen können?
Pathros
38

Dies liegt daran, dass für das Formular eine CSRF erforderlich ist. In Version 5.7 haben sie es in @csrf geändert

<form action="" method="post">
    @csrf
    ...

Referene: https://laravel.com/docs/5.7/csrf

David
quelle
6
Seine Form enthält einen csrf-Token. Ich bin mir nicht sicher, ob er es später bearbeitet hat oder nicht.
eResourcesInc
Ja, seine Form hat ursprünglich ein csrfFeld, ich habe gerade in die Bearbeitungshistorie geschaut
Dexter Bengil
13

Fall 1: Wenn Sie ein Projekt in Ihrem lokalen System wie 127.0.01: 8000 ausführen,

dann

fügen Sie SESSION_DOMAIN=in Ihrer .env Datei

oder in deiner config / session.php 'domain' => env('SESSION_DOMAIN', ''),

und dann laufen php artisan cache:clear

Fall 2: Wenn das Projekt auf einem Server ausgeführt wird und Sie eine Domain wie "mydomain.com" haben

fügen Sie SESSION_DOMAIN=mydomain.comin Ihrer .env Datei

oder in deiner config / session.php 'domain' => env('SESSION_DOMAIN', 'mydomain.com'),

und dann laufen php artisan cache:clear

Saurabh Mistry
quelle
9

Wie wäre es mit

{{ csrf_field() }} anstatt @csrf

419 Fehler ist hauptsächlich auf Probleme mit dem CSRF-Token zurückzuführen.

Bonish Koirala
quelle
Du meinst {{ csrf_field() }}?
Travis Britz
9

Ich benutze Laravel 5.7. Ich hatte das gleiche Problem und es lag daran, dass das CSRF-Token nicht in der Form war, also fügte ich hinzu

@csrf

Das Problem wurde behoben

Karim Samir
quelle
7

Probieren Sie Kommentar \App\Http\Middleware\EncryptCookies::classin \app\Http\Kernel.php mir ähnliches Problem und löste es , indem dies zu tun. Wahrscheinlich nicht die beste Lösung, weil die Sicherheit aber zumindest funktioniert hat.

Zuvor habe ich versucht:

  • Cache leeren
  • Generieren Sie einen neuen App-Schlüssel
  • Führen Sie meine App in verschiedenen Browsern aus (Chrome 70, Mozilla Firefox 57 und IE 11).
  • Führen Sie meine App auf einem anderen Computer aus
  • Kommentar aus \App\Http\Middleware\VerifyCsrfToken::classin\app\Http\Kernel.php
  • Kommentar aus \Illuminate\Session\Middleware\AuthenticateSession::classin\app\Http\Kernel.php
  • Upgrade und Downgrade von Laravel (zwischen 5.6 und 5.7)

Aber keines davon hat bei mir funktioniert.

BEARBEITEN

Mein Fall hier ist, dass jedes Mal, wenn ich mich anmelde, eine neue Sitzungsdatei erstellt wird (die alte bleibt bestehen, wird aber plötzlich vergessen. Überprüfen storage/framework/sessions) und ein neues CSRF-Token generiert wird. Das Problem liegt also nicht bei VerifyCsrfToken.

Wie @Vladd im Kommentarbereich erwähnt, sollten Sie niemals einen Kommentar abgeben \App\Http\Middleware\VerifyCsrfToken::class. Sie müssen überprüfen, ob Sie den richtigen CSRF-Token an den Server gesendet haben.

Prasna Lukito
quelle
1
Unter diesen Möglichkeiten, die Sie erwähnt haben, hat nur das Auskommentieren der Klasse \ App \ Http \ Middleware \ VerifyCsrfToken :: in \ app \ Http \ Kernel.php für mich funktioniert.
Lex Soft
1
Cache
leeren
Sie dürfen niemals \ App \ Http \ Middleware \ VerifyCsrfToken :: class ausgeben. Warum würdest du das tun? Um Ihre eigene Schwachstelle in der App zu erstellen?
Vladd
@dobs Danke, dass Sie '+ Cookies entfernen' hinzugefügt haben, da ich einen 419-Fehler erhalten habe, obwohl ich alles getan habe, was ich konnte, und es nur funktioniert hat, als ich die Browser-Cookies gelöscht / inkognito versucht habe.
Niraj Pandey
6

ändere dein @csrf in welcome.blade.php in<input type="hidden" name="_token" value="{{ csrf_token() }}">

Ihr Code sieht also so aus:

<form method="POST" action="/foo" >
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>

   <button type="submit">Submit</button>
</form>
Aghnat Atqiya
quelle
6

Es könnte ein Problem mit Ihrer Sitzung sein. Nachdem ich mit diesen Einstellungen herumgespielt hatte, löste ich mein Problem. Für mich war es die letzte Option.

  • Wenn Sie "Datei" als Sitzungstreiber verwenden, überprüfen Sie Speicher / Framework / Sitzungen, wenn die Sitzungen nach einer Aktualisierung gespeichert werden. Wenn nicht, liegt dies höchstwahrscheinlich an falschen Ordnerberechtigungen. Überprüfen Sie, ob Ihr Speicher / Ordner das richtige Recht hat
  • Versuchen Sie, das gesamte Javascript auf Ihren Seiten zu deaktivieren (entweder durch Deaktivieren über den Navigator oder innerhalb des Codes) und stellen Sie sicher, dass 'http_only' => true,
  • Versuchen Sie es mit und ohne https
  • Stellen Sie sicher, dass die Variable SESSION_DRIVER NICHT null ist
  • Versuchen Sie, zwischen 'encrypt' => false und 'encrypt' => true zu wechseln.
  • Versuchen Sie, den Cookie-Namen 'cookie' => 'laravelsession' zu ändern.
  • Versuchen Sie entweder, Ihre SESSION_DOMAIN auf Ihre tatsächliche Domain oder null zu setzen
  • Versuchen Sie, zwischen 'sicher' => env ('SESSION_SECURE_COOKIE', false) und 'sicher' => env ('SESSION_SECURE_COOKIE', true) zu wechseln.

Quelle: Laravel Session ändert immer jede Aktualisierung / Anforderung in Laravel 5.4

Bram Janssen
quelle
Ja, nachdem ich viele andere Dinge ausprobiert habe, hat der SESSION_SECURE_COOKIESchalter (geändert in false) es für mich getan. (am localhost:8000)
Marten Koetsier
SESSION_SECURE_COOKIE war auch das Problem für mich, ich habe es geändert, als ich einem Leitfaden zur Website-Optimierung folgte.
Bram Janssen
Für mich funktioniert es mit https, aber nicht mit http ... eine Idee warum? danke für die tolle antwort, ich habe stunden gebraucht, um sie zu finden.
Sharkyenergy
4

Wenn Sie ein CSRF-Token hinzufügen, wird Ihr Problem behoben. {{csrf_token}} oder @csrf

Samair Ali
quelle
4

Um diesen Fehler zu beheben, müssen Sie zuerst einen der folgenden Befehle in das Formular-Tag einfügen.

@csrf ODER {{ csrf_field }}

Wenn Ihr Problem nicht behoben ist, gehen Sie wie folgt vor: (Beachten Sie, dass sich einer der oben genannten Befehle im Formular-Tag befinden muss.)

1. Fügen Sie einen der folgenden Befehle in das Formular-Tag @csrfODER ein{{ csrf_field }}

2.Öffnen Sie die ENV-Datei und ändern Sie die Werte in "Datei" im Abschnitt SESSION_DRIVER.

3. Dann sollten Sie den Laravel-Cache zurücksetzen. Geben Sie die folgenden Befehle in das Terminal ein

php artisan view:clear php artisan route:clear php artisan cache:clear

php artisan config:cache

4. Trennen Sie im letzten Schritt das Projekt vom Serve und klicken Sie erneut auf PHP Artisan Serve

Ich hoffe, Ihr Problem ist gelöst

Hosein Azimi
quelle
3

Nach so viel Zeit habe ich es auf diese Weise gelöst

Mein Laravel-Installationspfad war nicht der gleiche wie in der Konfigurationsdatei session.php

'domain' => env('SESSION_DOMAIN', 'example.com'),
ismail bangee
quelle
2

Es mag übertrieben sein, aber Sie können dies versuchen:

// Formularaufruf für benannte Route mit hinzugefügtem ausgeblendeten Tokenfeld.

<form method="POST" action="{{ route('foo') }}" >
    @csrf
    <input type="hidden" name="_token" value="{!! csrf_token() !!}">
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>
</form>

// Benannte Route

Route::post('/foo', function () {
    return 'bar';
})->name('foo');

// Füge dies innerhalb des <head></head>Blocks hinzu:

<meta name="_token" content="{!! csrf_token() !!}" />

Ich habe es auf meinem lokalen mit Homestead auf Laravel 5.7 getestet, was eine Neuinstallation mit Laravel Installer 2.0.1 war, und es hat funktioniert. Was ist deine Umgebung?

Theorie: Ich frage mich, ob das etwas mit dem Blade-Rendering von HTML-Tags im {{ }}Vergleich {!! !!}zu Ihrer Umgebung zu tun hat oder wie Sie es bereitstellen (z. B. php artisan serve). Was lässt mich denken , dass ist line 335der /vendor/laravel/framework/src/illuminate/Foundation/helpers.phpsollte die gleiche Linie manuell getippt oben machen.

jeremykenedy
quelle
Ja cool, aber <meta>Tags sollten innerhalb der <head>, nicht innerhalb der platziert werden <body>. Ich bin mir nicht sicher, ob dies dem HTML-Validator gefallen würde.
Emix
Ich würde sagen, Sie haben Recht und das sollte auf den Kopf verschoben werden.
Jeremykenedy
2

Es gibt kein Problem im Code. Ich habe mit demselben Code geprüft, den Sie bei der Neuinstallation geschrieben haben.

Formularcode:

<form method="POST" action="/foo" >
    @csrf
    <input type="text" name="name"/><br/>
    <input type="submit" value="Add"/>
</form>

web.php Dateicode:

Route::get('/', function () {
    return view('welcome');
});

Route::post('/foo', function () {
    echo 1;
    return;
});

Das Ergebnis nach dem Absenden des Formulars ist: Ausgabe nach dem Absenden des Formulars

Wenn Sie Ihren Browser-Cache leeren oder es mit einem anderen Browser versuchen, wird dies meiner Meinung nach behoben.

engrhussainahmad
quelle
2

Ein schneller, schlechter Ansatz ist, dass Sie zu app \ http \ middleware \ verifycsrftoken.php gehen und die Route in die Liste $ Except hinzufügen. Die Post-Anfrage wird für die CSRF-Token-Überprüfung ignoriert.

protected $except = [
    //
    'doLogin.aspx',
    'create_coupon',
];
Qasim Ali
quelle
2

419 | Seite Dieser Fehler bedeutet ein großes Sicherheitsproblem. Dies bedeutet, dass das Feld csrf-Token nicht richtig verwendet wird.

verwenden {{csrf_field}} und Ihr Problem wird gelöst.

Flatterer
quelle
2

Es sollte funktionieren, wenn Sie alle folgenden Schritte ausführen:

  1. Stellen Sie sicher, dass Ihre Sitzung gut konfiguriert ist. Der einfachste Weg besteht darin, eine Datei zu erstellen und sicherzustellen, dass der Speicherordner über die Berechtigung chmod 755 verfügt. Wenn .envSie sie wie folgt festlegen, ist der Dateisitzungstreiber der einfachste Weg, sie festzulegen.

    SESSION_DRIVER=file
    SESSION_DOMAIN=
    SESSION_SECURE_COOKIE=false
    
  2. Stellen Sie sicher, dass der Cache-Ordner gelöscht und beschreibbar ist. Führen Sie dazu den folgenden Befehl aus.

    php artisan cache:clear
    
  3. Stellen Sie sicher, dass die Ordnerberechtigungen gut festgelegt sind. Sie sollten wie folgt konfiguriert werden:

    sudo chmod -R 755 storage
    sudo chmod -R 755 vendor
    sudo chmod -R 644 bootstrap/cache
    
  4. Stellen Sie sicher, dass in Ihrem Formular ein @csrfToken enthalten ist.

Hoffe das wird dein Problem lösen.

Kamaro Lambert
quelle
1

In deiner Http/Kernel.php

versuche diese Zeile zu kommentieren:

\Illuminate\Session\Middleware\AuthenticateSession::class,

in Ihrem Web-Middleware-Array

Es könnte die Wurzel Ihres Problems sein

Mathieu Ferre
quelle
1

Standardmäßig hatte ich dieses Problem nicht. Also habe ich chmod -R 644 sessions das Problem repliziert.

Geben Sie hier die Bildbeschreibung ein

Danach habe ich dem Sitzungsordner von Berechtigungen erteilt chmod -R 755 sessions

Jetzt funktioniert mein Projektcode wieder.

Geben Sie hier die Bildbeschreibung ein

Der Grund dafür ist, dass Sie Ihren Cache mit fehlenden Schreibberechtigungen in einer Datei speichern.

Die Sitzungskonfigurationsdatei wird unter config / session.php gespeichert. Überprüfen Sie unbedingt die Optionen, die Ihnen in dieser Datei zur Verfügung stehen. Standardmäßig ist Laravel für die Verwendung des Dateisitzungstreibers konfiguriert, der für viele Anwendungen gut funktioniert. In Produktionsanwendungen können Sie die Memcached- oder Redis-Treiber verwenden, um die Sitzungsleistung noch schneller zu machen.

Lösungen:

1 - Wie ich oben behoben habe, können Sie dem Sitzungsordner 755 Berechtigungen erteilen. 2 - Sie können eine andere Sitzungstreiberkonfiguration verwenden.

Dateisitzungen werden in Speicher / Framework / Sitzungen gespeichert. Cookie-Sitzungen werden in sicheren, verschlüsselten Cookies gespeichert. Datenbank - Sitzungen werden in einer relationalen Datenbank gespeichert. memcached / redis - Sitzungen werden in einem dieser schnellen, cachebasierten Speicher gespeichert. Array - Sitzungen werden in einem PHP-Array gespeichert und nicht beibehalten.

Denken Sie daran; Wenn Sie memcached / redis verwenden möchten, müssen diese auf Ihrem Server installiert sein, oder Ihr Docker-Redis-Container muss ausgeführt werden.

Anar Bayramov
quelle
1

Eigentlich ist CSRF ein sitzungsbasiertes Token. Fügen Sie Ihre Route zu einer Routengruppe hinzu und fügen Sie eine Middleware hinzu, die die Sitzungen steuert.

Web ist eine Standard-Middleware in Laravel und kann die Sitzungsanforderungen steuern.

Route::group(array('middleware' => ['web']), function () {
  Route::post('/foo', function () {
     echo 1;
     return;
  });
});
Zia
quelle
1

Wenn Sie bereits über die Anweisung csrf verfügen , haben Sie möglicherweise die Art und Weise geändert, in der Sitzungen ausgeführt werden.

In config/session.php, überprüfen Sie die ‚sicheren‘ Bereich. Es sollte auf false stehen, wenn https auf Ihrem Server nicht verfügbar ist.

Sie können auch SESSION_SECURE_COOKIE=FALSEIhre .envDatei (Stammverzeichnis) ablegen.

Towelie
quelle
1

Öffnen Sie die Befehlszeile cmd in Ihrem Projekt.

1.Befehl

php artisan config:cache

2.comand

php artisan route:clear
Biblbroks42
quelle
1

Haben Sie auch die csrf im Header Ihrer Anwendung?

<meta name="csrf-token" content="{{ csrf_token() }}">
iranimij
quelle
1

Während das Formular hat @csrf, zeigt es immer noch419 pages has expired

Ich habe es nach der Update- SESSION_SECURE_COOKIEOption auf false in config / session.php gelöst

'secure' => env('SESSION_SECURE_COOKIE', false)

als Cache löschen

Kakada Neang
quelle
1

Gehen Sie zu config / session.php

finde die Reihe

'secure' => env('SESSION_SECURE_COOKIE', true),

ändere es in false

'secure' => env('SESSION_SECURE_COOKIE', false),

Wenn dieser Parameter auf TRUE gesetzt ist, müssen Sie im Browser das HTTPS-Protokoll verwenden, andernfalls wird die Sitzung nicht gespeichert. Da es nicht gültig ist

Rafayel
quelle
1

Ich habe das alles durchgesehen und bin hier, um eine Antwort zu finden. In meinem Fall bestand die Lösung darin, den Browserverlauf zu löschen.

Isma'el
quelle
1

In meinem Fall war ein?> Am Ende der route.php. Verbrachte viel Zeit dort ...

Juan Angel
quelle
Ebenso habe ich vergessen, ?>am Ende vonweb.php
msalihbindak
0

Ich hatte genau das gleiche Problem und es lag daran, dass ich völlig dumm war. Ich hatte alle Formularfelder (und nicht nur die Schaltfläche "Senden") über Javascript deaktiviert, bevor ich das Formular abschickte! Dies führte natürlich dazu, dass nicht alle Formularelemente (einschließlich der ausgeblendeten) übermittelt wurden_token Felds) , was wiederum den 419-Fehler verursachte!

Ich hoffe das hilft jemandem von ein paar Stunden Kopfkratzen!

Deaktivierte Formulareingaben werden in der Anforderung nicht angezeigt

Splodge
quelle
0

Ich habe dieses Problem vor langer Zeit bekommen. Ich erinnerte mich, dass es die Erlaubnis von verursacht storage/framework/sessions. Möglicherweise möchten Sie es per chmod -R 0777 storage/framework/sessionsBefehl ändern . Es hat bei mir funktioniert.

Duy Nguyen
quelle
0

In meinem Fall ist es sehr lächerlich. Ich erhalte den Fehler 419, wenn ich Auth::routes()oben in die Routendatei eingefügt habe.

Auth::routes();

Route::middleware('auth')->group(function () {
    Route::get('/', 'DashboardController@index')->name('dashboard');
});

Und ich habe den Fehler behoben, indem ich Auth::routes();zum Ende der Routendatei gegangen bin .

Route::middleware('auth')->group(function () {
    Route::get('/', 'DashboardController@index')->name('dashboard');
});

Auth::routes();

Vielleicht kann es auch Ihrem Fall helfen. Viel Glück.

Lyhong
quelle
0

Bitte beachten Sie, dass Fehler 419 angezeigt wird, wenn Sie versuchen, eine große Datei hochzuladen, die die maximale Größe der Post-Datei überschreitet. In diesem Fall können Sie sowohl upload_max_filesize als auch post_max_size auf einen angemessenen Betrag erhöhen (z. B. 10M oder 20M hängen von Ihrem Anwendungsfall und Ihren Ressourcen ab). Überprüfen Sie dies hier: https://stackoverflow.com/a/2184541/2100489

Dies kann jedoch zu Problemen beim Ressourcenverbrauch führen, z. B. bei Bandbreite und Speicher. Als Lösung können Sie die Dateigröße überprüfen, bevor Sie das Formular senden, und eine Warnmeldung anzeigen.

Kiafar
quelle