csrf protection error bei login - cache problem?

Liebe Leute!

Habe in meiner Testumgebung immer wieder das Problem, daß nach Änderungen im Backend im Frontend das Login spinnt. Sobald man auf den Button “anmelden” klickt, kommt folgende Fehlermeldung:

Fatal error:
Uncaught Shopware\Components\CSRFTokenValidationException:
The provided X-CSRF-Token for path “/staging_1/register/saveRegister/sTarget/checkout/sTargetAction/confirm” is invalid.

Normalerweise hilft es dann, den Browsercache komplett zu leeren und den Browser neu zu starten. Das kann ich aber einem Kunden ja nicht zumuten, der ärgert sich nur, warum er sich nicht einloggen kann …

Frage: Woran liegt das und wie kann ich das beheben? Wird der controller fürs Login gecacht (wie heißt der überhaupt)? Hab allerdings nichts in der Liste gefunden, das nach login aussieht …

Bin etwas ratlos und wäre echt froh über jede Hilfe …
Danke!

Sel4

Hallo,

versuch es doch lieber in einer neuen anonymen Session Deines Browsers. Das Neustart-Gedöns wird dann unnötig.

Hallo!
Das ist auf jeden Fall ein super Tip zum Testen, danke!
Leider kann ich nicht primär davon ausgehen, daß da auch ein Durchschnitts-User daran denkt …
Trotzdem mal danke! :slight_smile:
LieGrü
Sel4

Hallo,

der normale User, der erstmalig oder in größeren Abständen Deinen Shop besucht, hat ja im Regelfall keinen ungültigen CSRF-Cookie im Browser-Cache. Insofern trifft das Problem primär Dich beim Entwickeln und Testen, die Kunden weniger.

Die Tokens sind an eine Domain gebunden. Wenn die Testumgebung die gleiche Domain nutzt, dann passen die Tokens aus dem Hauptshop nicht zur Testumgebung. Also wahrscheinlich kein Problem des Kunden, da der ja nicht beide Umgebungen besucht.

1 Like

Ein Grund mehr, dass Shopware endlich mal eine Test(sub)domain zuläßt/ermöglicht.

@Moritz Naczenski schrieb:

Die Tokens sind an eine Domain gebunden. Wenn die Testumgebung die gleiche Domain nutzt, dann passen die Tokens aus dem Hauptshop nicht zur Testumgebung. Also wahrscheinlich kein Problem des Kunden, da der ja nicht beide Umgebungen besucht.

 

 

Das heißt, die einzige Möglichkeit ist, die csrf Protection für die Testumgebung von vornherein auszuschalten?  Irgendwie blöd, weil ich ja dann den Shop nicht mit denselben Parametern testen kann … *grübel*

Oder gibts eine Möglichkeit, den CSRF Tokens eine Lifetime zu geben?

Danke jedenfalls mal für den Hinweis. :slight_smile:

LieGrü
Sel4

Du kannst auch einfach via Dev Console (F12) unter Application -> Session Data die Cookies löschen, oder halt einen anderen Browser verwenden.

LG Andre

1 Like