Улучшен вход пользователя в аккаунт

This commit is contained in:
AidarKC
2026-08-28 16:51:14 +04:00
parent f2fdb8195c
commit 357a05f7ec
25 changed files with 821 additions and 270 deletions
+12
View File
@@ -1042,6 +1042,14 @@ export class AuthService {
return response.payload || {};
}
async resolveLoginForAuth(login) {
const cleanLogin = String(login || '').trim();
if (!cleanLogin) throw new Error('Введите логин');
const response = await this.ws.request('ResolveLoginForAuth', { login: cleanLogin });
if (response.status !== 200) throw opError('ResolveLoginForAuth', response);
return response.payload || {};
}
async resolveCanonicalDisplayLogin(login) {
const cleanLogin = String(login || '').trim();
if (!cleanLogin) return '';
@@ -1158,6 +1166,7 @@ export class AuthService {
const sessionId = createResp?.payload?.sessionId;
if (!sessionId) throw new Error('CreateAuthSession: не вернулся sessionId');
const connectionScope = String(createResp?.payload?.connectionScope || '').trim().toUpperCase();
const canonicalLogin = await this.resolveCanonicalDisplayLogin(cleanLogin);
@@ -1165,6 +1174,7 @@ export class AuthService {
login: canonicalLogin,
sessionId,
storagePwd,
connectionScope,
sessionMaterial: {
sessionId,
sessionKey,
@@ -1322,6 +1332,7 @@ export class AuthService {
const storagePwd = loginResp?.payload?.storagePwd;
if (!storagePwd) throw new Error('SessionLogin: не вернулся storagePwd');
const connectionScope = String(loginResp?.payload?.connectionScope || '').trim().toUpperCase();
const canonicalLogin = await this.resolveCanonicalDisplayLogin(cleanLogin);
@@ -1329,6 +1340,7 @@ export class AuthService {
login: canonicalLogin,
sessionId: targetSessionId,
storagePwd,
connectionScope,
};
}
+8
View File
@@ -50,6 +50,14 @@ export function toUserMessage(error, fallback = 'Действие не выпо
return 'Пользователь не найден. Проверьте логин.';
}
if (code === 'DEVICE_KEY_NOT_ACTUAL') {
return 'Неверный пароль.';
}
if (code === 'USER_NOT_LOCAL') {
return 'Этот пользователь относится к другому серверу доступа.';
}
if (code === 'PAIRING_NO_TRUSTED_SESSION_ONLINE') {
return 'К сожалению сейчас нет ни одного активного устройства этого пользователя, подключенного к этому серверу в сети, и поэтому вход таким образом выполнить невозможно.';
}