feat: implement authentication flow with login, password reset, and club selection
All checks were successful
Deploy tt-tagebuch / deploy (push) Successful in 53s

- Added dependencies for dio, flutter_secure_storage, and shared_preferences.
- Created ApiClient for handling API requests with token management.
- Implemented AuthRepository for authentication operations.
- Developed TokenStorage for secure token storage.
- Added AppSession to manage user session state and club selection.
- Created password reset pages for requesting and saving new passwords.
- Implemented ClubSelectionPage for selecting an active club.
- Updated widget tests to reflect new login flow and UI changes.
- Documented progress in FLUTTER_DESKTOP_APP_PLAN.md.
This commit is contained in:
Torsten Schulz (local)
2026-07-30 10:54:02 +02:00
parent 240cbf7d14
commit ef8d99eaf4
23 changed files with 1469 additions and 105 deletions

View File

@@ -59,13 +59,13 @@ Bestehendes Node/Express-Backend
### Phase 2 Anmeldung, Sitzung und Vereinskontext
- [ ] Login gegen `POST /api/auth/login` implementieren, inklusive „angemeldet bleiben“.
- [ ] Token sicher speichern, beim Start wiederherstellen und Sitzung mit `GET /api/session/status` prüfen.
- [ ] Logout über `POST /api/auth/logout` implementieren und lokale Zugangsdaten zuverlässig löschen.
- [ ] Passwort-vergessen- und Passwort-zurücksetzen-Flows als native Formulare ergänzen.
- [ ] Vereinsliste über `GET /api/clubs` laden und aktiven Verein persistent auswählen.
- [ ] Berechtigungen über `GET /api/permissions/:clubId` laden und die Navigation rollenabhängig aufbauen.
- [ ] Unit- und Integrationstests für Login, Tokenablauf, 401 und Vereinswechsel schreiben.
- [x] Login gegen `POST /api/auth/login` implementieren, inklusive „angemeldet bleiben“.
- [x] Token sicher speichern, beim Start wiederherstellen und Sitzung mit `GET /api/session/status` prüfen.
- [x] Logout über `POST /api/auth/logout` implementieren und lokale Zugangsdaten zuverlässig löschen.
- [x] Passwort-vergessen- und Passwort-zurücksetzen-Flows als native Formulare ergänzen.
- [x] Vereinsliste über `GET /api/clubs` laden und aktiven Verein persistent auswählen.
- [x] Berechtigungen über `GET /api/permissions/:clubId` laden und die Navigation rollenabhängig aufbauen.
- [x] Unit- und Integrationstests für Login, Tokenablauf, 401 und Vereinswechsel schreiben.
### Phase 3 Desktop-MVP: persönliche Organisation