Employee-only App gegen bestehende Backend-API: Login inkl. TOTP-Schritt, Ein-/Ausstempeln, Pause, Status "heute". Refresh-Token läuft nur als HttpOnly-Cookie (Backend gibt ihn nie im Body zurück) → persistente Cookie-Jar statt Secure-Storage-Refresh-Token. android/-Projektordner via flutter create auf root@192.168.1.236 generiert, INTERNET-Permission nachgetragen. Ungetestet auf echtem Gerät. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
TimeMaster Mobile (Flutter)
Employee-only App: Login + Ein-/Ausstempeln + Pause. Gegen bestehende Backend-API
(backend/app/routers/{auth,time_entries}.py).
Setup
cd mobile
flutter create . --platforms=android,ios # generiert android/ios-Ordner (fehlen noch)
flutter pub get
flutter run
Kein flutter hier lokal verfügbar (kein SDK installiert) – pubspec.yaml +
lib/ sind von Hand geschrieben, ungetestet. Vor erstem Start:
flutter create . im mobile/-Ordner ausführen, damit android/, ios/ +
Gradle/Xcode-Projekte entstehen (überschreibt lib/main.dart NICHT, da
bereits vorhanden – bestehende Dateien bleiben).
Auth-Flow
POST /auth/login→ beitotp_required: truezweiter SchrittPOST /auth/totp/login- Access-Token in
flutter_secure_storage, Refresh-Token läuft NUR als HttpOnly-Cookie (Backend gibt ihn nie im Body zurück) → persistentePersistCookieJar(cookie_jar/dio_cookie_manager) nötig, siehelib/services/api_client.dart. - 401 → einmaliger Auto-Refresh via Cookie, danach Logout + Redirect (Redirect
aktuell nicht verdrahtet –
onUnauthorized-Callback ist vorbereitet, aber inmain.dartnoch nicht an Navigator gebunden – TODO).
Server-Adresse
Einstellbar im Login-Screen (Zahnrad oben rechts), landet in Secure Storage.
Default zeigt auf Platzhalter-URL – vor erstem Test auf 137 oder 164 zeigen
(https://<host>/api/v1).
Umfang aktuell
Nur Login + stamp-in/out + break-start/end + Status "heute". Kein Antrags- Workflow (Abwesenheit etc.), kein Offline-Modus, keine echte Android/iOS- Build-Config (android/ios-Ordner fehlen noch, siehe oben).