34 lines
1.1 KiB
Markdown
34 lines
1.1 KiB
Markdown
# ADR-001: Zweistufiges Domain- & Session-Handling
|
|
|
|
## Kontext
|
|
|
|
Die bestehende Middleware/Provider-Logik greift in Teilen vor `StartSession` auf Session-Daten zu. Das führt in Randfällen zu doppelt erzeugten Sessions und inkonsistentem `user_shop`-Zustand.
|
|
|
|
## Entscheidung
|
|
|
|
Wir trennen strikt in zwei Phasen:
|
|
|
|
1. DomainBootstrap (früh, rein):
|
|
|
|
- Host parsen → `DomainContext`
|
|
- `config('session.domain')` + `config('app.url')` setzen
|
|
- KEIN Sessionzugriff
|
|
|
|
2. DomainSessionSync (spät, zustandsvoll):
|
|
- Session ist aktiv
|
|
- `UserShopSessionManager` synchronisiert `user_shop` in Session und Cookie
|
|
|
|
## Alternativen
|
|
|
|
- Alles in einer Middleware: führt zu Sessionzugriff vor `StartSession` oder verspäteter Setzung von `session.domain`
|
|
- Nur Cookies, keine Session: bricht vorhandene Annahmen in Views/Controllern
|
|
|
|
## Konsequenzen
|
|
|
|
- Keine doppelten Sessions durch frühe Zugriffe
|
|
- Sticky-Shop über Subdomains stabil
|
|
- Optionale Abwärtskompatibilität via Legacy-Session-Keys
|
|
|
|
## Status
|
|
|
|
Prototyp in `dev/subdomain-optimization-gpt-5` abgelegt. Schrittweise Integration empfohlen.
|