Final commit.
This commit is contained in:
@ -81,7 +81,16 @@ class AuthBloc extends Bloc<AuthEvent, AuthState> {
|
||||
Emitter<AuthState> emit,
|
||||
) async {
|
||||
try {
|
||||
final restored = await tokenProvider.restoreSession();
|
||||
// Timeout-Schutz: hängt der Restore (z. B. nativer flutter_appauth-
|
||||
// Token-Call nach Hot-Restart, nicht erreichbarer Issuer), darf der
|
||||
// Bootstrap NICHT ewig im Splash bleiben. Nach dem Timeout fallen wir
|
||||
// sauber auf die LoginPage zurück. Läuft der Restore später doch noch
|
||||
// erfolgreich durch, kommt der Login via Stream-Event (AuthLoggedIn)
|
||||
// nachträglich an und der State wird zu Authenticated.
|
||||
final restored = await tokenProvider.restoreSession().timeout(
|
||||
const Duration(seconds: 15),
|
||||
onTimeout: () => false,
|
||||
);
|
||||
if (!restored) {
|
||||
// Kein gespeicherter Refresh-Token oder Refresh fehlgeschlagen:
|
||||
// Vom Splash zur LoginPage übergehen. Kein Snackbar — das ist
|
||||
|
||||
Reference in New Issue
Block a user