Fehler-Lösung

419 Page Expired in Laravel beheben

Laravel lehnt einen POST-, PUT-, PATCH- oder DELETE-Request ab, dessen CSRF-Token fehlt, abgelaufen ist oder nicht zur Session passt.

Die Fehlermeldung

419 | Page Expired

Mögliche Ursachen

  • Formular ohne @csrf. Jedes Formular, das mit POST, PUT, PATCH oder DELETE sendet, braucht ein verstecktes _token-Feld. Das erzeugt die Blade-Direktive @csrf.
  • Session abgelaufen. Das Token hängt an der Session. Lief die Session ab, bevor das Formular abgeschickt wurde, passt das Token nicht mehr.
  • AJAX ohne Token-Header. Bei JavaScript-Requests prüft die Middleware den Header X-CSRF-TOKEN. Fehlt er, kommt 419.
  • Session-Cookie kommt nicht an. Falsche Cookie-Domain, Secure-Cookie über HTTP oder eine Seite, die vom Cache ausgeliefert wird, liefern ein Token ohne passende Session.

Lösung

  1. Im Formular @csrf einfügen.
  2. Bei AJAX das Token aus einem meta-Tag lesen und als X-CSRF-TOKEN-Header mitschicken.
  3. Seiten mit Formular nicht im Seiten- oder CDN-Cache ausliefern.
  4. Session-Konfiguration prüfen (SESSION_DOMAIN, SESSION_SECURE_COOKIE) und die Session-Lebensdauer an die Seite anpassen.
  5. Für Webhooks externer Dienste die Route außerhalb der web-Middleware definieren oder in bootstrap/app.php per validateCsrfTokens(except: [...]) ausnehmen.

Formular

<form method="POST" action="/profile">
    @csrf
    ...
</form>

Quelle: Laravel 12.x: CSRF Protection · Stand: 2026-10-09

Verwandte Fehler

Fehler bleibt bestehen?

Ich schaue mir Ihr Laravel-Projekt an und sage Ihnen ehrlich, woran es liegt. Kostenloses 30-Minuten-Gespräch.