From 2ff8963c527b0c129e687ba545dae8fd5475f420 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Mon, 4 Sep 2023 10:54:14 +0530 Subject: [PATCH] Refactor to clear online mode keys --- lib/core/configuration.dart | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/core/configuration.dart b/lib/core/configuration.dart index d54da4d441..18763f7185 100644 --- a/lib/core/configuration.dart +++ b/lib/core/configuration.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'dart:convert'; import 'dart:io' as io; import 'dart:typed_data'; @@ -40,6 +41,7 @@ class Configuration { static const userIDKey = "user_id"; static const hasMigratedSecureStorageKey = "has_migrated_secure_storage"; static const hasOptedForOfflineModeKey = "has_opted_for_offline_mode"; + final List onlineSecureKeys = [keyKey, secretKeyKey, authSecretKeyKey]; final kTempFolderDeletionTimeBuffer = const Duration(days: 1).inMicroseconds; @@ -81,8 +83,19 @@ class Configuration { _logger.warning(e); } tempDirectory.createSync(recursive: true); + await _initOnlineAccount(); + } + + Future _initOnlineAccount() async { if (!_preferences.containsKey(tokenKey)) { - await _secureStorage.deleteAll(iOptions: _secureStorageOptionsIOS); + for (final key in onlineSecureKeys) { + unawaited( + _secureStorage.delete( + key: key, + iOptions: _secureStorageOptionsIOS, + ), + ); + } } else { _key = await _secureStorage.read( key: keyKey, @@ -104,7 +117,12 @@ class Configuration { Future logout({bool autoLogout = false}) async { await _preferences.clear(); - await _secureStorage.deleteAll(iOptions: _secureStorageOptionsIOS); + for (String key in onlineSecureKeys) { + await _secureStorage.delete( + key: key, + iOptions: _secureStorageOptionsIOS, + ); + } await AuthenticatorDB.instance.clearTable(); _key = null; _cachedToken = null;