M3 Passwort-Reset und E-Mail-Verifikation ergänzen

- Auth-Token-Tabelle mit gehashten Single-Use-Tokens einführen
- Passwort-Reset und E-Mail-Verifikation als Dev-Flow bauen
- Token-Flow-Test, Smoke-Abdeckung und M3-Dokumentation aktualisieren
This commit is contained in:
2026-07-13 19:26:58 +02:00
parent 19ff11c21a
commit 8ab4a8a9bb
15 changed files with 740 additions and 9 deletions
+3 -2
View File
@@ -140,8 +140,9 @@ Die Skripte erwarten die bekannten Dev-Umgebungsvariablen `DB_HOST`, `DB_NAME`,
eine PayPal-Alias-Dublette und hinterlaesst keine Datei in `var/uploads`.
- CSV-Upload negative Tests: Nicht-CSV-Dateien werden abgewiesen.
- Golden Master weiterhin gruen mit 104 Assertions.
- HTTP-Smoke weiterhin gruen mit 17 sicheren Seiten inklusive Login,
Registrierung und geschuetzter Mandant-Einstellungen.
- HTTP-Smoke weiterhin gruen mit 20 sicheren Seiten inklusive Login,
Registrierung, Passwort-Reset, E-Mail-Verifikation und geschuetzter
Mandant-Einstellungen.
## Bewusste Grenzen
+20 -5
View File
@@ -21,7 +21,7 @@ das neue Modell umgestellt.
- Keine Migration von Einzahlungen und Kaffeeverbrauch nach `ledger_entries`;
das gehoert zu M4.
- Kein Design- oder Layout-Umbau.
- Kein Billing, keine Tarife, keine E-Mail-Verifikation im ersten Schritt.
- Kein Billing und keine Tarife im ersten Schritt.
- Kein produktiver Tenant-Wechsel in bestehenden Legacy-Seiten.
## Umgesetzter erster Schritt
@@ -31,6 +31,7 @@ Umgesetzte Migrationen:
```text
database/migrations/0002_saas_identity_tenants.sql
database/migrations/0003_saas_auth_account_fields.sql
database/migrations/0004_saas_auth_tokens.sql
```
Tabellen:
@@ -48,6 +49,7 @@ scripts/backfill-default-tenant.php
scripts/check-m3-saas-basis.php
scripts/check-m3-auth-flow.php
scripts/check-m3-settings-flow.php
scripts/check-m3-password-email-flow.php
```
Wichtige Regeln:
@@ -118,6 +120,10 @@ login.php
register.php
konto.php
logout.php
passwort-vergessen.php
passwort-zuruecksetzen.php
email-verifikation-senden.php
email-verifizieren.php
```
Umgesetzter Umfang:
@@ -131,13 +137,17 @@ Umgesetzter Umfang:
laesst `DEV_AUTH_EMAIL` und `AUTH_USER` aber als Legacy-Fallback bestehen.
- `footer.php` ist fuer nicht angemeldete Public-Seiten sicher und zeigt Links
zu Login und Registrierung.
- Passwort-Reset erzeugt Single-Use-Tokens und speichert nur Token-Hashes.
- E-Mail-Verifikation erzeugt Single-Use-Tokens und setzt
`users.email_verified_at`.
- Bis zum produktiven Mailversand werden Links nur im Dev-Modus angezeigt
beziehungsweise in CLI-Checks direkt verwendet.
Noch offen im M3-Auth-Scope:
- Passwort-Reset.
- E-Mail-Verifikation.
- Tenant-Aufloesung ueber Subdomain oder Custom Domain.
- Weitergehende Rollenmatrix fuer spaetere SaaS-Seiten.
- Produktiver Mailversand fuer Reset- und Verifikationslinks.
## Rollen und Grundeinstellungen
@@ -171,6 +181,8 @@ Umgesetzter Umfang:
- Registrierung und Login funktionieren fuer einen neuen Test-Tenant:
erfuellt.
- Owner-/Admin-Grundeinstellungen koennen aktualisiert werden: erfuellt.
- Passwort-Reset und E-Mail-Verifikation funktionieren mit Single-Use-Tokens:
erfuellt.
- Golden-Master und HTTP-Smoke bleiben gruen: erfuellt.
## Risiken
@@ -194,6 +206,9 @@ Umgesetzter Umfang:
7. Auth-Flow-Kontrollskript schreiben: erledigt.
8. Zentrale Rollenpruefung und Mandant-Einstellungen bauen: erledigt.
9. Settings-Flow-Kontrollskript schreiben: erledigt.
10. Golden-Master und HTTP-Smoke ausfuehren: erledigt.
11. Passwort-Reset, E-Mail-Verifikation und Tenant-Aufloesung planen:
10. Migration `0004_saas_auth_tokens.sql` erstellen: erledigt.
11. Passwort-Reset und E-Mail-Verifikation bauen: erledigt.
12. Password-/E-Mail-Flow-Kontrollskript schreiben: erledigt.
13. Golden-Master und HTTP-Smoke ausfuehren: erledigt.
14. Tenant-Aufloesung planen:
naechster Schritt.
+2 -1
View File
@@ -420,7 +420,8 @@ Schritte:
- Registrierung: Tenant + Owner-User + Default-Settings erzeugen: erster
Flow erledigt.
- Login und Logout bauen: erster Flow erledigt.
- Passwort-Reset und E-Mail-Verifikation bauen.
- Passwort-Reset und E-Mail-Verifikation bauen: Dev-Flow mit Single-Use-Tokens
erledigt.
- Tenant-Aufloesung definieren.
- Rollenpruefung zentralisieren: erster Owner/Admin-Check erledigt.
- Erste Admin-/Owner-Seite fuer Grundeinstellungen: erledigt.