добавил сохранение аккаунта в хранилище ОС
на 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:
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user