restoreSession method
Restores user session from persistent storage on application startup.
Returns true if a valid persisted session was found and restored.
Example:
final hasSession = await auth.restoreSession();
Implementation
Future<bool> restoreSession() async {
if (storage == null || fromJson == null) return false;
try {
final raw = await storage!.read(sessionKey);
if (raw == null || raw.isEmpty) return false;
final decoded = jsonDecode(raw) as Map<String, dynamic>;
final tokenStr = decoded['token'] as String?;
final userData = decoded['user'] as Map<String, dynamic>?;
if (tokenStr != null && userData != null) {
_token.value = tokenStr;
_currentUser.value = fromJson!(userData);
logger.info('BloomAuth: Restored session from storage (hasUser: ${_currentUser.value != null})');
return true;
}
} catch (e) {
logger.error('BloomAuth: Failed to restore session from storage: $e');
}
return false;
}