„Die Seite ist aufgrund von Inaktivität abgelaufen“ – Laravel 5.5

Lesezeit: 5 Minuten

„Die Seite ist aufgrund von Inaktivitat abgelaufen – Laravel 55
Sougata Bose

Meine Registrierungsseite zeigt das Formular mit CsrfToken ({{ csrf_field() }}) im Formular vorhanden).

Formular-HTML

<form class="form-horizontal registration-form" novalidate method="POST" action="{{ route('register') }}">
        {{ csrf_field() }}
        ....
</form>

Ich verwende die eingebaute Authentifizierung für die Benutzer. Habe außer den Routen und Weiterleitungen nichts geändert.

Wenn ich das Formular absende (gleich nach dem Neuladen auch), gibt es das Die Seite ist aufgrund von Inaktivität abgelaufen. Bitte aktualisieren Sie und versuchen Sie es erneut. Error.

Meine Güte, ich vermisse eine sehr kleine Sache. Aber nicht sicher, was es ist. Irgendeine Hilfe?

Aktualisieren

Habe das Problem gefunden. Der Sitzungstreiber wurde auf Array gesetzt. In Datei geändert und der Fehler ist jetzt weg. Aber was ist falsch, wenn ich Array verwende?

  • Kann etwas damit zu tun haben, dass der Speicherpfad nicht beschreibbar ist. Hier werden Sitzungsdaten in Bezug auf Token gespeichert, wenn Sie dateibasierte Sitzungen verwenden.

    – Devon

    10. September 2017 um 14:38 Uhr

  • Habe das Problem gefunden. Der Sitzungstreiber wurde auf eingestellt array. In Datei geändert und der Fehler ist jetzt weg. Aber was ist falsch, wenn ich Array verwende?

    – Sougata Bose

    10. September 2017 um 14:42 Uhr

  • oder diese URL checken Sie stackoverflow.com/questions/39997180/…

    – Fatih TÜZEN

    21. Mai 2018 um 10:56 Uhr

  • Verwenden Sie für eine neue Version von Laravel @csrf, um das Problem zu lösen.

    – Vuong Tran

    4. August 2019 um 9:00 Uhr

„Die Seite ist aufgrund von Inaktivitat abgelaufen – Laravel 55
Devon

Wenn Sie direkt von einer Suche zu dieser Antwort kommenvergewissern Sie sich, dass Sie das csrf-Token bereits mit zu Ihrem Formular hinzugefügt haben {{ csrf_field() }} wie die OP.


Wenn Sie Ihren Sitzungstreiber auf Datei eingestellt haben:

Kann etwas damit zu tun haben, dass der Speicherpfad nicht beschreibbar ist. Hier werden Sitzungsdaten in Bezug auf Token gespeichert, wenn Sie dateibasierte Sitzungen verwenden. Das kann mit verifiziert werden is_writable(config('session.files'))


Für das OP wurde der Sitzungstreiber auf Array gesetzt. Array dient nur zum Testen. Da Daten nicht persistent gespeichert werden, kann das Token bei der nächsten Anfrage nicht verglichen werden.

Der Array-Treiber wird während des Testens verwendet und verhindert, dass die in der Sitzung gespeicherten Daten beibehalten werden.

https://laravel.com/docs/5.5/session#configuration


Überprüfen Sie die config/session.php

Zuletzt ein Problem, das ich gerade hatte: Wir hatten ein Projekt, das die Sitzungsdomäne und sichere Einstellungen in config/session.php hatte, aber die Entwicklungsseite verwendete kein HTTPS (SSL/TLS). Dies verursachte diesen allgemeinen Fehler, da session.secure standardmäßig auf „true“ gesetzt war.

  • OK. Aber jetzt ist es in der Entwicklung. Wenn ich also ein Array verwende, warum hat es mir diesen Fehler gegeben?

    – Sougata Bose

    10. September 2017 um 14:46 Uhr

  • @SougataBose-Testen ist keine Entwicklung. Array-Daten werden nicht gespeichert…

    – Devon

    10. September 2017 um 14:46 Uhr

  • Das ist der Grund, warum man die DOCs richtig durchgehen sollte.. 🙂

    – Sougata Bose

    10. September 2017 um 14:50 Uhr

  • Mein Problem wurde nicht gelöst. Ich habe die Grundlagen wirklich gemacht. Aber ich verwende benutzerdefinierte Anbieter und Dienste. Es gibt kein Problem, wenn ich eine Controller-Methode aufrufe, aber wenn ich eine Dienstmethode in einem Controller ausführe, der mit einer Post-Anfrage aufgerufen wurde, tritt das Problem auf!

    – Behnam Azimi

    17. Dezember 2017 um 22:26 Uhr

  • Ich hatte ein ähnliches Problem mit Sitzungen, aber in Bezug auf das Testen. Stellte sich heraus, als ich benutzte Carbon::setTestNow($time); In den Tests habe ich es nicht gelöscht, indem ich es verwendet habe Carbon::setTestNow(); danach.

    – RiotCode

    1. August 2018 um 23:52 Uhr

Ich bin in Laravel 5.5 auf das gleiche Problem gestoßen. In meinem Fall ist es passiert, nachdem eine Route von GET auf POST geändert wurde. Das Problem bestand darin, dass ich vergessen hatte, ein CSRF-Token zu übergeben, als ich zu POST wechselte.

Sie können entweder ein CSRF-Token in Ihrem Formular posten, indem Sie anrufen:

 {{ csrf_field() }}

Oder schließen Sie Ihre Route in app/Http/Middleware/VerifyCsrfToken.php aus

 protected $except = [
        'your/route'
    ];

  • csrf_field() im Formular vorhanden. Die akzeptierte Antwort beschreibt das Problem. Danke.

    – Sougata Bose

    18. September 2017 um 4:37 Uhr

  • In meinem Fall habe ich einen POST von einem Drittanbieter erhalten, daher war das Hinzufügen von csrf_field() keine Option. Da CSRF in meinem Fall kein Faktor war, löste das Hinzufügen einer Ausnahme zu dieser Route das Problem. Danke.

    – Fábio Duque Silva

    31. Oktober 2017 um 15:44 Uhr

  • Mein Problem wurde nicht gelöst. Ich habe die Grundlagen wirklich gemacht. Aber ich verwende benutzerdefinierte Anbieter und Dienste. Es gibt kein Problem, wenn ich eine Controller-Methode aufrufe, aber wenn ich eine Dienstmethode in einem Controller ausführe, der mit einer Post-Anfrage aufgerufen wurde, tritt das Problem auf!

    – Behnam Azimi

    17. Dezember 2017 um 22:28 Uhr

  • Bitte deaktivieren Sie die CSRF-Verifizierung nicht! Es ist sehr wichtig, Schutz zu haben. Erfahren Sie, wie Sie das Token ordnungsgemäß senden und Ihre angemeldeten Benutzer vor bösartigem Javascript schützen, das Aktionen in ihrem Namen senden kann.

    – Devon

    8. April 2018 um 0:17 Uhr

Probieren Sie alle aus.

composer dump-autoload
php artisan optimize
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

Dies verursacht wegen Illuminate\Session\TokenMismatchException
Sehen Sie sich dieses Codebeispiel an, wie Sie damit richtig umgehen:

https://gist.github.com/jrmadsen67/bd0f9ad0ef1ed6bb594e

1646629452 759 „Die Seite ist aufgrund von Inaktivitat abgelaufen – Laravel 55
Andres Ruiz

Mein Fall wurde mit gelöst SESSION_DOMAINin meinem lokalen Rechner musste auf gesetzt werden xxx.localhost. Es verursachte Konflikte mit der Produktion SESSION_DOMAIN, xxx.com das wurde direkt in der Konfigurationsdatei session.php eingestellt.

  • Welchen Sitzungstreiber hast du verwendet? file oder cookie?

    – KeitelDOG

    5. Dezember 2018 um 22:05 Uhr

1646629453 109 „Die Seite ist aufgrund von Inaktivitat abgelaufen – Laravel 55
Suresh Velusamy

Einige Informationen werden im Cookie gespeichert, die sich auf frühere Versionen von Laravel in der Entwicklung beziehen. Es steht also im Konflikt mit csrf-generierten Token, die von den Versionen eines anderen generiert werden. Löschen Sie einfach das Cookie und probieren Sie es aus.

  • Welchen Sitzungstreiber hast du verwendet? file oder cookie?

    – KeitelDOG

    5. Dezember 2018 um 22:05 Uhr

„Die Seite ist aufgrund von Inaktivitat abgelaufen – Laravel 55
andrew_jackson

Für diejenigen, die immer noch Probleme haben und nichts geholfen hat. Achten Sie auf den Parameter mbstring.func_overload der php.ini. Es muss auf 0 gesetzt werden. Und mbstring.internal_encoding auf UTF-8 gesetzt. In meinem Fall war das ein Problem.

  • Danke sehr! Ihre Antwort hat mein Gehirn vor dem Absturz gerettet)

    – Rustembek Kalijew

    5. Dezember 2019 um 9:43 Uhr

963000cookie-check„Die Seite ist aufgrund von Inaktivität abgelaufen“ – Laravel 5.5

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy