mivita/dev/subdomain-optimization-gpt-5-v2/docs/ADR-001-domain-session-handling.md
2025-10-20 17:42:08 +02:00

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.