Skip to content

Usuario

El módulo de Usuario proporciona la funcionalidad para obtener información y el Token del jugador actualmente conectado. Si el juego permite acceder a todas las funciones sin necesidad de iniciar sesión, no es necesario usar este módulo; de lo contrario, debe llamar a las interfaces relacionadas de este módulo para implementar las funciones correspondientes.

Después de leer la sección relacionada con tu motor de juego en la página Introducción a JOGOS_SDK, puedes utilizar las funciones relacionadas de la siguiente manera:

javascript
window.JOGOS_SDK.user;

Obtener información del usuario actual

Puedes usar el siguiente método para recuperar la información del jugador actual:

javascript
try {
  const user = await window.JOGOS_SDK.user.getUser();
  console.log('Get user result', user);
} catch (err) {
  // Manejar la excepción
  console.error(err);
}

Si el jugador actual no está registrado o no ha iniciado sesión, el sistema abrirá automáticamente el cuadro de diálogo de inicio de sesión/registro pidiendo al usuario que se registre o inicie sesión correctamente para continuar jugando; de lo contrario, devolverá la excepción 401 No autorizado, por favor inicia sesión nuevamente.

Si la cuenta del jugador actual ha sido bloqueada o eliminada, también se devolverá la información de excepción correspondiente.

La estructura del objeto jugador devuelto con éxito es la siguiente:

typescript
// Información del usuario
export interface UserInfo {
  // ID de usuario
  userId: string;
  // Nombre de usuario
  username: string;
  // URL de la foto de perfil
  profilePictureUrl: string;
  // ID del juego
  gameId: number;
}

El nombre de usuario de JOGOS_SDK tiene entre 6 y 20 caracteres y puede contener letras, números, puntos y guiones bajos.

Nota: Mensaje para juegos con múltiples personajes por una sola cuenta

El UserId de JOGOS_SDK está en correspondencia uno a uno con la cuenta del jugador; si tu juego permite crear múltiples personajes o cambiar entre personajes en múltiples servidores, tu servidor debe manejar esta lógica para evitar la pérdida o la inability to switch between multiple characters of the player.

Obtener token de usuario (necesario para la integración con tu servidor de juegos)

El token de usuario contiene información relacionada con el jugador actualmente conectado. Deberías enviarlo a tu servidor cuando sea necesario y verificar/decodificarlo allí para extraer la información relacionada, lo que es muy útil para asociar cuentas de usuario.

Puedes usar el siguiente método para recuperar el token de usuario:

javascript
try {
  const token = await window.JOGOS_SDK.user.getUserToken();
  console.log('Get token result', token);
} catch (err) {
  // Manejar la excepción
  console.error(err);
}

La vida útil del token es de 1 hora. Recomendamos no almacenar el Token y llamar siempre a este método cuando necesites el Token.

Si el jugador actual no está registrado o no ha iniciado sesión, el sistema abrirá automáticamente el cuadro de diálogo de inicio de sesión/registro pidiendo al usuario que se registre o inicie sesión correctamente para continuar jugando; de lo contrario, devolverá la excepción 401 No autorizado, por favor inicia sesión nuevamente.

Si la cuenta del jugador actual ha sido bloqueada o eliminada, también se devolverá la información de excepción correspondiente.

El token devuelto puede decodificarse y probarse en jwt.io.

La información del token devuelta con éxito contiene los siguientes datos:

json
{
  "jti": "1899405772252258304",
  "sub": "{\"profilePictureUrl\":\"a33bf366e34d48e984a094fc923d7b06.png\",\"gameId\":\"1\",\"profileDefaultAvatar\":\"default-avatar.png\",\"userId\":\"88E1B72FED537C6943C85C28F639BE0B\",\"username\":\"55895999999999999999\"}",
  "iss": "com:jogos:sdk",
  "iat": 1741688600,
  "exp": 1745288600
}
No decodifiques el token en el cliente
Asegúrate de no decodificar el token de usuario en el cliente, ya que esto no es seguro

Cuando necesites usar el servidor para autenticar solicitudes, debes enviar el token a tu servidor, luego decodificar y verificar el token. Puedes usar la clave pública alojada en esta Clave pública del token de usuario para verificar el token. Recomendamos obtener la clave cada vez que verifiques el token, ya que puede cambiar.

Aquí tienes un ejemplo de decodificación y verificación de token usando TypeScript y la clave pública:

typescript
import * as jwt from 'jsonwebtoken';

export interface CrazyTokenPayload {
  userId: string;
  username: string;
  gameId: string;
  profilePictureUrl: string;
}

export const decodeUserToken = async (token: string): Promise<CrazyTokenPayload> => {
  const publickKey = `...`; // Obtenido desde https://www.jogos.com/sdk/public-key.txt
  const payload = jwt.verify(token, key, { algorithms: ['RS256'] });

  return payload as CrazyTokenPayload;
};

Prueba local

Durante la prueba local, las interfaces relacionadas con el módulo de usuario solo devuelven datos simulados.