37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
# Login
|
|
|
|
## Route
|
|
|
|
`/user/login`
|
|
|
|
## Zweck
|
|
|
|
Die Seite meldet bestehende Benutzer mit E-Mail-Adresse und Passwort an. Nach erfolgreicher Anmeldung wird der Benutzer zur Startseite weitergeleitet.
|
|
|
|
## Datenquellen
|
|
|
|
- `LoginComponent` verwaltet ein reaktives Formular mit den Feldern `user` und `pass`.
|
|
- `UserService.login(user, password)` delegiert an `UserSessionService.login`.
|
|
- `UserSessionService` verwendet Firebase Auth (`signInWithEmailAndPassword`) und lädt danach den zugehörigen Datensatz aus `users/{uid}`.
|
|
|
|
## UI
|
|
|
|
Die Ansicht zeigt das Anwendungslogo, zwei Eingabefelder und drei vollbreite Aktionsbuttons. Fehlercodes aus Firebase Auth werden über `AuthMessagePipe` in deutsche Meldungen übersetzt.
|
|
|
|
## Aktionen
|
|
|
|
- `Anmelden`: validiert das Formular, führt den Login aus, initialisiert bei Bedarf `songUsage` und navigiert bei Erfolg nach `/`.
|
|
- `Passwort zurücksetzen`: navigiert nach `/user/password`.
|
|
- `neuen Benutzer anlegen`: navigiert nach `/user/new`.
|
|
- `Enter` in einem Eingabefeld löst ebenfalls den Login aus.
|
|
|
|
## Rollen und Berechtigungen
|
|
|
|
Die Login-Seite ist öffentlich erreichbar. Die spätere Nutzbarkeit geschützter Bereiche hängt vom geladenen Benutzerdokument und dessen Rollen ab.
|
|
|
|
## Technische Hinweise
|
|
|
|
- Das Formular verlangt eine gültige E-Mail-Adresse und ein Passwort.
|
|
- Wenn Firebase Auth erfolgreich ist, aber kein passender Firestore-Benutzer existiert, liefert der Login keine Benutzer-ID zurück.
|
|
- Bekannte Fehlercodes wie `auth/user-not-found`, `auth/wrong-password` und `auth/invalid-email` werden lokalisiert angezeigt.
|