Логин flow, некоторые фиксiкi

This commit is contained in:
noxzion
2026-04-01 22:50:00 +05:00
parent 8d315e7cc6
commit c22ba7cc04
9 changed files with 782 additions and 464 deletions
+18 -7
View File
@@ -243,7 +243,6 @@ class AccountModule {
Future<TwoFactorResult> checkPassword({
required String password,
required String trackId,
required int accountId,
}) async {
_ensureOnline();
@@ -252,7 +251,7 @@ class AccountModule {
'password': password,
};
logger.i('Проверка 2FA-пароля для аккаунта $accountId');
logger.i('Проверка 2FA-пароля');
final packet = await _api.sendRequest(
Opcode.authLoginCheckPassword,
@@ -285,9 +284,22 @@ class AccountModule {
throw Exception('checkPassword: отсутствует токен в ответе');
}
await TokenStorage.saveToken(loginToken, accountId);
await TokenStorage.setActiveAccount(accountId);
logger.i('2FA пройдена, токен аккаунта $accountId сохранён');
final profileData = data['profile'];
int? accountId;
if (profileData is Map) {
final contact = profileData['contact'];
if (contact is Map) {
accountId = contact['id'] as int?;
}
}
if (accountId != null) {
await TokenStorage.saveToken(loginToken, accountId);
await TokenStorage.setActiveAccount(accountId);
logger.i('2FA пройдена, токен аккаунта $accountId сохранён');
} else {
logger.w('2FA пройдена, но accountId не получен из ответа');
}
return TwoFactorResult(loginToken: loginToken);
}
@@ -298,8 +310,7 @@ class AccountModule {
) {
final payload = <dynamic, dynamic>{
'token': token,
'interactive': true,
'exp': {'chatsCountGroups': '0b32'},
'interactive': true
};
if (sync != null) {