# Mobile Web Session API v0.5

## Ablauf

- `m.wetslip.net` stellt die lokale/statische Shell (Landing, Login, Neon-Dashboard, Offline-Hülle) bereit.
- `api.wetslip.net/mobile/auth/csrf` erstellt per Web-Middleware eine CSRF-geschützte Laravel-Session und liefert einen nur im JS-Arbeitsspeicher gehaltenen CSRF-Token.
- `POST /mobile/auth/login` prüft die E-Mail/das Passwort gegen das echte Laravel User-Modell, drosselt Fehlversuche und regeneriert die Session-ID.
- `GET /mobile/auth/me` liefert nur ID, Name, E-Mail des eingeloggten Benutzers; `401` für Gäste.
- `POST /mobile/auth/logout` invalidiert Session/CSRF-Token.
- Die Browseranfragen erfolgen **mit `credentials: include`** über TLS, und nur `https://m.wetslip.net` ist als zulässiger CORS-Origin konfiguriert. **Session-Cookie ist HttpOnly, Secure und host-only für `api.wetslip.net`.**
- API-Authentifizierung für spätere native Apps ist ein separater Vertrag (Sanctum); nicht mit dieser Web-Session-API verwechseln.

## Sicherheitsgrenzen

- **Niemals** Passwörter, Tokens, Loginantworten, Chats, private Profile oder Medien im Service Worker, localStorage oder GitHub speichern.
- Die Demo-Navigation ist rein synthetisch und stellt keinen authentifizierten Zugriff auf geschützte Live-Daten dar. Spätere Laravel-APIs müssen *jede* Berechtigung serverseitig prüfen.
- Altersnachweis, Moderation und ggf. Einwilligung sind eigenständige Zugangsvoraussetzungen. 18+-Grafik ist **keine** Altersverifikation.
- Keine echten Bestellungen, Coins oder privaten Inhalte in v0.5.
- Cross-Origin-WebView (lokal gepackte HTML-Dateien gegenüber `api.wetslip.net`) erfordert später getrennte Cookie- und CSRF-Tests. Die jetzige browserbasierte Lösung gilt für `m.wetslip.net`.
- Keine Klartext-HTTP-Ausweichverbindung. Frontend nicht in einem `file://`-Origin betreiben.

## Noch offene Punkte

- Kontrollierte Frontend-Routen und Weiterleitungen für Logout / Konto gelöscht / Konto gesperrt.
- CSRF- und CORS-E2E-Test in realem Entwicklungsbetrieb, inkl. Session-Rotation und Header-Prüfung.
- Live-API-Daten anstelle von Demo-Katalog, getrennte Autorisierung und Offline-Datenminimierung.
- Registrierung, Wiederherstellung, Altersprüfung, Admin- und Device-Verwaltung.
