добавил сохранение аккаунта в хранилище ОС

на Android это в EncryptedSharedPreferences
в яблочно подобных это Keychain
с виндой работает но я хз че там за хранилище
с линухом работает, но нужно поставить доп. пакеты

# Debian / Ubuntu
sudo apt install libsecret-1-dev
# Fedora / RHEL
sudo dnf install libsecret-devel
# Arch
sudo pacman -S libsecret
This commit is contained in:
klockky
2026-03-29 10:48:52 +03:00
parent ece0592889
commit 73eaff142b
5 changed files with 213 additions and 2 deletions
+10 -1
View File
@@ -1,6 +1,7 @@
import '../api.dart';
import '../../core/protocol/opcode_map.dart';
import '../../core/protocol/packet.dart';
import '../../core/storage/token_storage.dart';
import '../../core/utils/logger.dart';
enum AuthRequestType {
@@ -86,7 +87,15 @@ class AccountModule {
throw Exception('verifyCode: неожиданный тип payload: ${data.runtimeType}');
}
return VerifyCodeResult(payload: data.cast<dynamic, dynamic>());
final result = VerifyCodeResult(payload: data.cast<dynamic, dynamic>());
final sessionToken = result.loginToken ?? result.registerToken;
if (sessionToken != null) {
await TokenStorage.save(sessionToken);
logger.i('Токен сохранён в хранилище');
}
return result;
}
Future<RequestCodeResult> _requestCodeInternal(
+16
View File
@@ -0,0 +1,16 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
class TokenStorage {
static const _key = 'auth_token';
static const _storage = FlutterSecureStorage(
aOptions: AndroidOptions(encryptedSharedPreferences: true),
);
static Future<void> save(String token) =>
_storage.write(key: _key, value: token);
static Future<String?> read() => _storage.read(key: _key);
static Future<void> delete() => _storage.delete(key: _key);
}