Ein Benutzer (DW_dev) meldet, dass Social Logins (Google, Discord, LinkedIn) auf Desktop-Geräten funktionieren, aber auf mobilen Geräten mit der Fehlermeldung csrf_detected fehlschlagen. Nach dem Redirect landet der Nutzer auf der Startseite, ist jedoch nicht eingeloggt. Die Logs zeigen wiederholt den CSRF-Fehler. Zunächst wird gefragt, ob es sich um eine Standard-Installation handelt (pfaffman), was bestätigt wird (DW_dev). Die Lösung findet DW_dev selbst: Ein benutzerdefiniertes JavaScript-Skript im Theme, das auf mobilen Geräten die Seite ständig neu lädt (window.location.replace), verursachte das Problem. Durch Entfernen dieses Skripts wurde der CSRF-Fehler behoben, da die Session- und CSRF-Token nun korrekt über den Redirect übertragen werden können.
Ich habe die Lösung für das Problem gefunden, bei dem Social Logins (Google, Discord etc.) auf mobilen Geräten mit csrf_detected fehlschlagen, obwohl sie auf dem PC funktionieren.
Die Ursache lag in meinem Theme:
Ein benutzerdefiniertes JavaScript-Skript in der <head>-Sektion des Themes hat die Seite auf mobilen Geräten ständig neu geladen (window.location.replace).
Dieser erzwungene Redirect hat den temporären CSRF-Token zerstört, der für die Session-Validierung nach dem Callback von Google/Discord notwendig ist.
Lösung:
Ich habe das gesamte Skript zur Erzwingung der mobilen Ansicht aus dem Theme entfernt.
Wenn ihr ähnliche Probleme habt und ein Custom Theme nutzt, prüft, ob dort Skripte laufen, die Redirects auslösen. Das war bei mir der Übeltäter!