Feature: Login (Anmeldung)
Der Login-Prozess ist das Tor zur Applikation und stellt sicher, dass nur authentifizierte Nutzer Zugriff auf ihre privaten Notizen erhalten.
🛠 Technische Umsetzung
- Frontend: Die Komponente
Anmeldung.vueverwaltet den Status der Eingabefelderusernameundpassword. - Authentifizierung & Autorisierung: Beim Absenden wird eine
POST-Anfrage an den/api/auth/loginEndpunkt gesendet. Danach soll der User auf den Ressourzen zugreifen, die seiner Rolle entspricht - Session-Management: - Bei Erfolg liefert das Backend einen JWT (JSON Web Token) sowie das Nutzerprofil zurück.
- Der Token wird im
Supabasegespeichert und dient als Autorisierung für alle zukünftigen API-Anfragen.
- Der Token wird im
- UX-Elemente: Ein Lade-Spinner (
isLoading) verhindert Mehrfacheingaben während der Serverantwort.
Fehlgeschlagenes Login:
Fehlgeschlagenes Login wird der User darüber informiert, dass seine Eingabe falsch sind oder ein Sicherheitsrisiko verursachen kann
🛡️ Schwachstellen & Vorbeugung
| Schwachstelle | Vorbeugung |
|---|---|
| XSS Attacken | Der Nutzername wird mittels DOMPurify bereinigt, um Skript-Injektionen im Login-Log zu verhindern. |
| Brute-Force Angriffe | Die Schaltfläche wird nach dem Klicken deaktiviert. . |
| Session-Fixierung | Der Token wird vom BAckend generiert, lokal sicher gespeichert und beim Logout durch localStorage.clear() sofort vernichtet. |
🔒 Datenschutz
- HTTPS: Die Übertragung der Anmeldedaten erfolgt ausschließlich über verschlüsselte Verbindungen.
- Minimale Datenspeicherung: Im Browser werden nur die für die Session notwendigen Metadaten (Username, Rolle) zwischengespeichert.