fix: stille Anmeldeschleife bei Secure-Cookie über HTTP erklären
CI / backend (push) Successful in 2m33s
Images bauen / build (backend) (push) Successful in 3m45s
Images bauen / build (frontend) (push) Successful in 4m23s
CI / frontend (push) Successful in 6m38s

Bei COOKIE_SECURE=true und Zugriff über HTTP verwirft der Browser das
Sitzungs-Cookie. Die Anmeldung selbst meldet Erfolg, die nächste Anfrage gilt
aber als nicht angemeldet – der Nutzer landet ohne jede Meldung wieder auf der
Anmeldemaske und hält es für ein falsches Passwort.

- Das Frontend prüft die Sitzung unmittelbar nach der Anmeldung und nennt bei
  einem Fehlschlag die Ursache samt beider Auswege
- Das Backend protokolliert dieselbe Kombination als Warnung und wertet dabei
  X-Forwarded-Proto aus, weil hinter einem Reverse Proxy immer http ankommt
- docs/deployment.md beschreibt das Symptom wörtlich

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014e7t8UpmoVNMtWivY5LiSH
This commit is contained in:
Jonas Menzel
2026-09-10 00:00:29 +02:00
co-authored by Claude Opus 5
parent c110340628
commit 998d5867df
6 changed files with 215 additions and 9 deletions
+19 -4
View File
@@ -212,10 +212,25 @@ Drei Ursachen kommen in Frage, in dieser Reihenfolge prüfen:
docker compose exec moneyfy-backend printenv MONEYFY_ADMIN_PASSWORD
```
3. **Kein HTTPS.** Die Cookies sind `Secure` gesetzt und erreichen den Server
über eine reine HTTP-Verbindung nicht. Typisches Bild: die Anmeldung meldet
keinen Fehler, landet aber sofort wieder auf der Anmeldemaske. Entweder über
NPMplus zugreifen oder für einen Test `COOKIE_SECURE=false` setzen.
3. **Kein HTTPS.** Die Cookies sind `Secure` gesetzt; über eine reine
HTTP-Verbindung verwirft der Browser sie. Typisches Bild: **der Bildschirm
flackert kurz und die Anmeldemaske erscheint erneut, ohne Fehlermeldung.**
Seit 0.1.2 erklärt die Oberfläche das ausdrücklich, und im Log steht:
> `Anmeldung über … ohne HTTPS bei COOKIE_SECURE=true der Browser verwirft
> das Sitzungs-Cookie …`
Abhilfe: über NPMplus mit HTTPS zugreifen, oder für einen Test auf HTTP:
```bash
# in der .env
COOKIE_SECURE=false
```
```bash
# restart genügt nicht nur up -d übernimmt die geänderte Umgebung
docker compose up -d --force-recreate moneyfy-backend
```
Welcher Fall vorliegt, verrät das Log: