diff --git a/b0esche_cloud/lib/blocs/session/session_bloc.dart b/b0esche_cloud/lib/blocs/session/session_bloc.dart index 8c00674..65d6ae9 100644 --- a/b0esche_cloud/lib/blocs/session/session_bloc.dart +++ b/b0esche_cloud/lib/blocs/session/session_bloc.dart @@ -17,16 +17,19 @@ class SessionBloc extends Bloc { on(_onSessionRestored); } - void _onSessionStarted(SessionStarted event, Emitter emit) async { + void _onSessionStarted( + SessionStarted event, + Emitter emit, + ) async { final expiresAt = DateTime.now().add( const Duration(minutes: 15), ); // Match Go - + // Save token to persistent storage final prefs = await SharedPreferences.getInstance(); await prefs.setString(_tokenKey, event.token); await prefs.setString(_expiryKey, expiresAt.toIso8601String()); - + emit(SessionActive(token: event.token, expiresAt: expiresAt)); _startExpiryTimer(expiresAt); } @@ -37,14 +40,17 @@ class SessionBloc extends Bloc { emit(SessionExpiredState()); } - void _onSessionRefreshed(SessionRefreshed event, Emitter emit) async { + void _onSessionRefreshed( + SessionRefreshed event, + Emitter emit, + ) async { final expiresAt = DateTime.now().add(const Duration(minutes: 15)); - + // Update stored token final prefs = await SharedPreferences.getInstance(); await prefs.setString(_tokenKey, event.newToken); await prefs.setString(_expiryKey, expiresAt.toIso8601String()); - + emit(SessionActive(token: event.newToken, expiresAt: expiresAt)); _startExpiryTimer(expiresAt); } @@ -58,7 +64,7 @@ class SessionBloc extends Bloc { void _onSessionRestored(SessionRestored event, Emitter emit) { final expiresAt = event.expiresAt; final now = DateTime.now(); - + // Check if token is still valid if (expiresAt.isAfter(now)) { emit(SessionActive(token: event.token, expiresAt: expiresAt)); @@ -80,7 +86,7 @@ class SessionBloc extends Bloc { final prefs = await SharedPreferences.getInstance(); final token = prefs.getString(_tokenKey); final expiryStr = prefs.getString(_expiryKey); - + if (token != null && expiryStr != null) { try { final expiresAt = DateTime.parse(expiryStr);