fix(mobile): Login-Callback robust machen + Fehlermeldungen #160

Merged
admin-mrrm merged 1 commit from 159-fix-login-callback into main 2026-05-02 20:52:53 +02:00
Owner

Probleme

  1. performLogin rief handleCallback nicht mehr auf → auf Geräten wo openAuthSessionAsync die URL zurückgibt (Chrome Custom Tab auf Android), wurde der Callback nie verarbeitet
  2. auth/callback.tsx redirectete bei jedem Fehler still zu /login ohne Grund anzuzeigen

Fix

Race Condition

Auf Android feuern manchmal beide Pfade: openAuthSessionAsync gibt die URL zurück UND ein Deep-Link-Intent öffnet auth/callback.tsx. Beide rufen handleCallback auf. Wer zweite läuft bekommt "No pending login" — das wird jetzt abgefangen und via isAuthenticated() aufgelöst.

Fehleranzeige

  • auth/callback.tsx: zeigt Fehlerdetails + "Zurück zur Anmeldung"-Button statt blind zu /login
  • login.tsx: zeigt Fehler in rotem Kasten mit Nachricht an

Closes #159

## Probleme 1. `performLogin` rief `handleCallback` nicht mehr auf → auf Geräten wo `openAuthSessionAsync` die URL zurückgibt (Chrome Custom Tab auf Android), wurde der Callback nie verarbeitet 2. `auth/callback.tsx` redirectete bei jedem Fehler still zu `/login` ohne Grund anzuzeigen ## Fix ### Race Condition Auf Android feuern manchmal beide Pfade: `openAuthSessionAsync` gibt die URL zurück UND ein Deep-Link-Intent öffnet `auth/callback.tsx`. Beide rufen `handleCallback` auf. Wer zweite läuft bekommt `"No pending login"` — das wird jetzt abgefangen und via `isAuthenticated()` aufgelöst. ### Fehleranzeige - `auth/callback.tsx`: zeigt Fehlerdetails + "Zurück zur Anmeldung"-Button statt blind zu `/login` - `login.tsx`: zeigt Fehler in rotem Kasten mit Nachricht an Closes #159
fix(mobile): Login-Callback robust machen + Fehlermeldungen einbauen
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
abf418d9f0
performLogin ruft handleCallback wieder auf (nötig wenn der Deep-Link-
Intent nicht separat feuert). Race mit auth/callback.tsx: wer zweite
läuft bekommt "No pending login" und prüft via isAuthenticated() ob
der erste bereits erfolgreich war.

auth/callback.tsx zeigt Fehlermeldung mit Details statt blind zu /login
zu redirecten. login.tsx zeigt Fehler im roten Kasten an.

Closes #159

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
admin-mrrm deleted branch 159-fix-login-callback 2026-05-02 20:52:53 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp!160
No description provided.