Ycom Login bei Wechsel der Subdomain erhalten

Bei der Webentwicklung hat man es nicht nur mit HTML und CSS, ein bisschen PHP, Datenbanken und Javascript zu tun. Manchmal kommen einem so Sachen wie Authentifizierung und Cookies in die Quere.

Die Aufgabenstellung

Sprache 1: de.diedomain.de

Sprache2: en.diedomain.de

Wenn man sich in der Sprache 1 in die Community (ycom) eingeloggt hat, war man nach dem Wechsel in die Sprache 2 wieder ausgeloggt.

Die Lösung

Markus schrieb auf meine Frage:

„Domain vs. Subdomain kannst du erreichen wenn du in der config im redaxo die Session Domain richtig einstellst d.h. dass der Cookie nur auf die Top-Domain gesetzt wird und somit auch für Dubdomains gültig ist.“

Toll, dass es Slack gibt und toll, dass es Markus gibt. Danke!

Die fragliche und anzupassende Datei findet sich unter redaxo/data/core/config.yml

Dort findet ihr folgende zwei Zeilen:

frontend:
        cookie: { lifetime: null, path: null, domain: null, secure: null, httponly: true, samesite: Strict }

Die zweite Zeile ändert ihr in cookie: { lifetime: null, path: null, domain: diedomain.de, secure: null, httponly: true, samesite: Lax }

Dann funktioniert euer Community Login schonmal. Auch über den Sprachwechsel hinweg. Das könnt ihr im Browser prüfen. Der Cookie wird jetzt nicht mehr auf de.diedomain.de gesetzt, sondern auf .diedomain.de.

Eigenartigerweise funktioniert jetzt der Backend Login nicht mehr. Damit dieser wieder funktioniert, ändert ihr bitte die Zeile, die für das Backend gilt identisch ab.

Die Ergänzung: Multidomain

Nun kann es geschehen, dass jede Sprache eine eigene Domain bekommt. Dann funktioniert die obige Lösung nicht mehr. @skerbis hatte hierfür den richtigen Tipp im Slack: Domain leer lassen. Das sieht dann so aus:

    backend:
        cookie: { lifetime: null, path: null, domain: "", secure: null, httponly: true, samesite: Lax }
    frontend:
        cookie: { lifetime: null, path: null, domain: "", secure: null, httponly: true, samesite: Lax }

Umgebung war hier REDAXO 5.11 und ycom 4.0.3.