feat : refresh login

test: core
This commit is contained in:
2025-06-02 09:38:02 +03:30
parent b86a2d986e
commit 7dbb66465c
24 changed files with 538 additions and 62 deletions

View File

@@ -18,58 +18,32 @@ class TokenStorageService extends GetxService {
Rxn<Module> appModule = Rxn(null);
Future<void> init() async {
await Hive.initFlutter();
Hive.registerAdapters();
IsolatedHive.registerAdapters();
final String? encryptedKey = await _secureStorage.read(key: 'hive_enc_key');
final encryptionKey =
encryptedKey != null
? base64Url.decode(encryptedKey)
: Hive.generateSecureKey();
final encryptionKey = encryptedKey != null ? base64Url.decode(encryptedKey) : Hive.generateSecureKey();
if (encryptedKey == null) {
await _secureStorage.write(
key: 'hive_enc_key',
value: base64UrlEncode(encryptionKey),
);
await _secureStorage.write(key: 'hive_enc_key', value: base64UrlEncode(encryptionKey));
}
await _localStorage.init();
await _localStorage.openBox(
_boxName,
encryptionCipher: HiveAesCipher(encryptionKey),
);
await _localStorage.openBox(_boxName, encryptionCipher: HiveAesCipher(encryptionKey));
accessToken.value = _localStorage.read<String?>(
boxName: _boxName,
key: _accessTokenKey,
);
refreshToken.value = _localStorage.read<String?>(
boxName: _boxName,
key: _refreshTokenKey,
);
appModule.value = _localStorage.read<Module?>(
boxName: _boxName,
key: _moduleKey,
);
accessToken.value = _localStorage.read<String?>(boxName: _boxName, key: _accessTokenKey);
refreshToken.value = _localStorage.read<String?>(boxName: _boxName, key: _refreshTokenKey);
appModule.value = _localStorage.read<Module?>(boxName: _boxName, key: _moduleKey);
}
Future<void> saveAccessToken(String token) async {
await _localStorage.save(
boxName: _boxName,
key: _accessTokenKey,
value: token,
);
await _localStorage.save(boxName: _boxName, key: _accessTokenKey, value: token);
accessToken.value = token;
accessToken.refresh();
}
Future<void> saveRefreshToken(String token) async {
await _localStorage.save(
boxName: _boxName,
key: _refreshTokenKey,
value: token,
);
await _localStorage.save(boxName: _boxName, key: _refreshTokenKey, value: token);
refreshToken.value = token;
refreshToken.refresh();
}