Battlenet accounts

Материал из World of WarCraft Developers Wiki
Перейти к навигации Перейти к поиску

Таблица battlenet_accounts

Таблица battlenet_accounts из базы данных auth является основной таблицей Battle.net-аккаунтов. Содержит e-mail (логин), параметры SRP-аутентификации (salt/verifier и версия алгоритма), служебные данные входов (IP, ошибки, блокировки), а также поля для тикета входа.

Структура таблицы

Field Type Attributes Key Null Default Extra
id int UNSIGNED PRIMARY NO AUTO_INCREMENT, COMMENT 'Identifier'
email varchar(320) CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci NO
srp_version tinyint NO 1
salt binary(32) NO
verifier blob NO
joindate timestamp NO CURRENT_TIMESTAMP
last_ip varchar(64) CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci NO '127.0.0.1'
failed_logins int UNSIGNED NO 0
locked tinyint UNSIGNED NO 0
lock_country varchar(2) CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci NO '00'
last_login timestamp YES NULL
online tinyint UNSIGNED NO 0
locale tinyint UNSIGNED NO 0
os varchar(4) CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci NO
LastCharacterUndelete int UNSIGNED NO 0
LoginTicket varchar(64) CHARACTER SET utf8mb4, COLLATE utf8mb4_unicode_ci YES NULL
LoginTicketExpiry int UNSIGNED YES NULL

id

Уникальный идентификатор Battle.net аккаунта. Первичный ключ, AUTO_INCREMENT. Используется как ссылка во многих таблицах (например battlenet_account_mounts, battlenet_account_toys и др.).

Пример: 1001

email

E-mail адрес Battle.net аккаунта. Используется как логин (в зависимости от реализаций может приводиться к верхнему регистру/нормализоваться на стороне ядра).

Пример: player@example.com

srp_version

Версия/вариант SRP-аутентификации для данного Battle.net аккаунта. Значение используется ядром для выбора алгоритма формирования/проверки `salt` и `verifier`.

Value Значение
1 SRP-вариант v1 (используется по умолчанию в таблице)
2 SRP-вариант v2 (может использоваться некоторыми командами/сборками; алгоритм отличается)

Пример: 1

salt

Соль для SRP-аутентификации (ровно 32 байта). Используется совместно с `email`/паролем для вычисления `verifier`.

Пример: 0xA1B2C3…

verifier

Verifier для SRP-аутентификации (данные для проверки пароля без хранения пароля в явном виде). Тип `blob` — длина может зависеть от выбранной SRP-версии/алгоритма.

Пример: 0x4F3E2D…

joindate

Дата и время создания Battle.net аккаунта.

Пример: 2025-12-01 10:15:00

last_ip

Последний IP, с которого выполнялся успешный вход в Battle.net аккаунт.

Пример: 203.0.113.25

failed_logins

Количество неуспешных попыток входа.

Пример: 0

locked

Флаг блокировки входа (IP/ограничения входа — зависят от логики ядра).

Value Значение
0 Не заблокирован
1 Заблокирован

Пример: 0

lock_country

Двухбуквенный код страны (обычно ISO 3166-1 alpha-2) для ограничений входа по стране. Значение `00` обычно означает “без ограничения”.

Пример: DE

last_login

Дата и время последнего успешного входа. Может быть NULL, если входов ещё не было.

Пример: 2025-12-20 18:11:59

online

Флаг текущего статуса “в сети”.

Value Значение
0 Оффлайн
1 Онлайн

Пример: 0

locale

Код локали клиента (язык/регион), с которым был выполнен вход.

Value Locale Language
0 enUS English (US)
1 enGB English (GB)
2 frFR French
3 deDE German
4 esES Spanish (ES)
5 esMX Spanish (MX/LatAm)
6 ptBR Portuguese (BR)
7 ruRU Russian
8 koKR Korean
9 zhCN Chinese (Simplified)
10 zhTW Chinese (Traditional)

Пример: 3

os

Код ОС клиента (используется, в том числе, античит-системами/warden-логикой).

Code Operating System
WIN Windows
MAC macOS
LNX Linux (эмуляция/Wine)
WINE Wine/эмуляция Windows

Пример: WIN

LastCharacterUndelete

Служебное поле Battle.net аккаунта, используемое подсистемой восстановления удалённых персонажей (undelete). По умолчанию `0`.

Пример: 0

LoginTicket

Служебный “тикет входа” (временный токен), который может использоваться в процессе авторизации. Может быть NULL.

Пример: 7f3a2c1b0d9e4a6f8c1d2e3f4a5b6c7d

LoginTicketExpiry

Срок действия `LoginTicket` (как целое число; обычно используется как timestamp/время истечения, в зависимости от логики ядра). Может быть NULL.

Пример: 1700000000