Ablaufschema Registrierung
1. Registrierung starten
Register Page (app/(public)/(auth)/register/page.tsx)
↓
Register Form (components/forms/registration/registration-form.tsx)
↓
User füllt Formular aus und klickt "Registrieren"
2. Backend-Verarbeitung
onCreateTenantAndUser() (lib/registration/actions.ts)
↓
- Tenant erstellen
- User erstellen
- Verification Token generieren
↓
API Route aufrufen (/api/verify-email/route.ts)
↓
sendVerificationEmail() (lib/email.ts)
↓
E-Mail mit Verifikationslink wird gesendet
3. Bestätigungsseite
Return von onCreateTenantAndUser()
↓
Redirect zu verify-email-sent/page.tsx
↓
"E-Mail wurde gesendet" - Bestätigungsseite
4. E-Mail-Verifikation
User klickt Link in E-Mail
↓
verify-email/[token]/page.tsx wird aufgerufen
↓
Automatischer API-Aufruf (/api/verify-email/[token]/route.ts)
↓
Token wird verifiziert
↓
Wenn erfolgreich: User-Status wird aktualisiert
↓
Automatischer Redirect zu set-password/[token]/page.tsx
5. Passwort setzen
Set-Password Formular wird angezeigt
(components/forms/registration/set-password-form.tsx)
↓
User setzt Passwort und bestätigt
↓
setPassword() (lib/registration/actions.ts) wird aufgerufen
↓
API Route (/api/set-password/route.ts) wird aufgerufen
↓
Passwort wird in Datenbank gespeichert
↓
User-Status wird finalisiert
6. Registrierung abgeschlossen
Redirect zu login/page.tsx
↓
User kann sich mit E-Mail und Passwort anmelden
Visueller Ablauf
[Register Page]
↓
[Register Form] → [Backend Processing] → [E-Mail senden]
↓
[E-Mail Bestätigung]
↓
[E-Mail Link klicken] → [Token verifizieren] → [Passwort setzen]
↓
[Login Page] ← [Registrierung abgeschlossen]
Wichtige Dateien im Überblick
Frontend Pages
app/(public)/(auth)/register/page.tsx- Registrierungsseiteapp/(public)/(auth)/verify-email-sent/page.tsx- E-Mail gesendet Bestätigungapp/(public)/(auth)/verify-email/[token]/page.tsx- E-Mail-Verifikationapp/(public)/(auth)/set-password/[token]/page.tsx- Passwort setzenapp/(public)/(auth)/login/page.tsx- Login-Seite
Backend Actions & API Routes
lib/registration/actions.ts- Hauptlogik für Registrierunglib/auth/actions.ts- Authentifizierungs-Server Actionslib/auth/db.ts- Authentifizierungs-Datenbankfunktionenapp/api/verify-email/route.ts- E-Mail versendenapp/api/verify-email/[token]/route.ts- Token verifizierenapp/api/set-password/route.ts- Passwort setzen
Komponenten
components/forms/registration/registration-form.tsx- Registrierungsformularcomponents/forms/registration/set-password-form.tsx- Passwort-Formular
Utilities
lib/email.ts- E-Mail-Versandlib/registration/registration-schema.ts- Validierunglib/registration/set-password-schema.ts- Passwort-Validierung