Tabla `account`
Estructura
Field | Type | Attributes | Key | Null | Default | Extra | Comment |
---|---|---|---|---|---|---|---|
id | INT | UNSIGNED | PRI | NO | AUTO_INCREMENT | Identifier | |
username | VARCHAR(32) | SIGNED | UNI | NO | '' | ||
salt | BINARY(32) | SIGNED | NO | ||||
verifier | BINARY(32) | SIGNED | NO | ||||
session_key | BINARY(40) | SIGNED | YES | ||||
totp_secret | VARBINARY(100) | SIGNED | YES | ||||
VARCHAR(255) | SIGNED | NO | '' | ||||
reg_mail | VARCHAR(255) | SIGNED | NO | '' | |||
joindate | TIMESTAMP | SIGNED | NO | CURRENT_TIMESTAMP | |||
last_ip | VARCHAR(15) | SIGNED | NO | 127.0.0.1 | |||
last_attempt_ip | VARCHAR(15) | SIGNED | NO | 127.0.0.1 | |||
failed_logins | INT | UNSIGNED | NO | 0 | |||
locked | TINYINT | UNSIGNED | NO | 0 | |||
lock_country | VARCHAR(2) | SIGNED | NO | 00 | |||
last_login | TIMESTAMP | SIGNED | YES | ||||
online | INT | UNSIGNED | NO | 0 | |||
expansion | TINYINT | UNSIGNED | NO | 2 | |||
mutetime | BIGINT | SIGNED | NO | 0 | |||
mutereason | VARCHAR(255) | SIGNED | NO | '' | |||
muteby | VARCHAR(50) | SIGNED | NO | '' | |||
locale | TINYINT | UNSIGNED | NO | 0 | |||
os | VARCHAR(3) | SIGNED | NO | '' | |||
recruiter | INT | UNSIGNED | NO | 0 | |||
totaltime | INT | UNSIGNED | NO | 0 |
Descripción de los campos
El ID único de la cuenta.
El nombre de la cuenta de usuario.
NOTA: los nombres de usuario están limitados a 20 caracteres y estos mismos no tienen restricción por caracter.
Salt es un valor criptográfico aleatorio de 32 bytes.
El verificador se deriva de salt, así como el nombre de usuario (todo en mayúsculas) y su contraseña (todo en mayúsculas).
Para obtener el verificador hay que calcular:
Calcular h1 = SHA1("USUARIO:CONTRASEÑA")
, sustituyendo el nombre de usuario y la contraseña convertidos en mayúsculas.
Calcular h2 = SHA1(salt || h1)
, dónde || es la concatenación (el operador . en PHP).
NOTA: ¡Tanto salt
como h1
son cadenas binarias, no hexadecimales!
Tratar h2
como un entero en orden little-endian (el primer byte es el menos significativo).
Calcular (g ^ h2) % N
.
NOTA: g
y N
son parámetros, que están fijados en la implementación de WoW.
g = 7
N = 0x894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7
Para implementaciones de PHP
¡Asegúrese de que la extensión PHP GMP esté cargada! Descomente extension=gmp
en su php.ini.
campo-sin-descripción|5
La clave del autentificador.
La clave puede generarse a través de la API de Google Authenticator, un generador TOTP de terceros, o especificarse manualmente (debe ser una expresión compatible con Base32 de 16 caracteres).
Enlace de implementación en Wikipedia para la API de Google Authenticator
https://es.wikipedia.org/wiki/Google_Authenticator#Implementaciones
La dirección de correo electrónico asociada a esta cuenta.
La dirección de correo electrónico de registro asociada a esta cuenta.
La fecha de creación de la cuenta.
La última IP utilizada por la persona que se conectó a la cuenta.
El número de inicios de sesión fallidos en la cuenta.
Booleano 0 o 1 que controla si la cuenta ha sido bloqueada o no. Esto se puede controlar con el comando GM ".account lock". Si está bloqueada (1), el usuario sólo puede iniciar sesión con su last_ip. Si está desbloqueado (0), el usuario puede conectarse desde cualquier IP, y su last_ip se actualizará si es diferente. ".Ban account" no la bloquea.
La fecha en la que se inició sesión por última vez.
Tiempo total jugado en todos los personajes de un jugador. Incluso en personajes borrados que ya no se encuentran en la base de datos. Almacenado en tiempo Unix.
Booleano 0 o 1 que controla si la cuenta está actualmente conectada y en línea.
Entero 0, 1 o 2 que controla si el cliente conectado a la cuenta tiene alguna otra expansión. (por ejemplo, si el cliente es TBC ( 1 ), pero la expansión está configurada como 0 ( vanilla ), no podrá entrar en Terrallende, etc.)
Valor | Expansión |
---|---|
0 | Classic |
1 | The Burning Crusade (TBC) |
2 | Wrath of the Lich King (WotLK) |
La hora, en tiempo Unix, en la que la cuenta será desmuteada. Para ver cuándo expirará el silenciamiento puedes usar esta consulta:
SELECT FROM_UNIXTIME(`mutetime`);
La razón del muteo.
El nombre del personaje con los derechos o el poder sobre el comando .mute que da el silenciamiento.
La configuración regional utilizada por el cliente conectado a esta cuenta. Si se han configurado y añadido múltiples datos de localización a los servidores mundiales, éstos devolverán al cliente las cadenas de localización adecuadas. Ver IDs de localización
Almacena información sobre el sistema operativo del cliente. Utilizado por el sistema Warden.
El ID de otra cuenta asociada a esta cuenta. Se utiliza para el sistema de "recuit-a-friend" (reclutar un amigo). Ver account.id