Zum Hauptinhalt springen

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 - Registrierungsseite
  • app/(public)/(auth)/verify-email-sent/page.tsx - E-Mail gesendet Bestätigung
  • app/(public)/(auth)/verify-email/[token]/page.tsx - E-Mail-Verifikation
  • app/(public)/(auth)/set-password/[token]/page.tsx - Passwort setzen
  • app/(public)/(auth)/login/page.tsx - Login-Seite

Backend Actions & API Routes​

  • lib/registration/actions.ts - Hauptlogik für Registrierung
  • lib/auth/actions.ts - Authentifizierungs-Server Actions
  • lib/auth/db.ts - Authentifizierungs-Datenbankfunktionen
  • app/api/verify-email/route.ts - E-Mail versenden
  • app/api/verify-email/[token]/route.ts - Token verifizieren
  • app/api/set-password/route.ts - Passwort setzen

Komponenten​

  • components/forms/registration/registration-form.tsx - Registrierungsformular
  • components/forms/registration/set-password-form.tsx - Passwort-Formular

Utilities​

  • lib/email.ts - E-Mail-Versand
  • lib/registration/registration-schema.ts - Validierung
  • lib/registration/set-password-schema.ts - Passwort-Validierung