Skip to content

Utilisateur

Le module Utilisateur permet d'obtenir les informations et le Token du joueur connecté. Si le jeu ne nécessite pas de connexion pour accéder à toutes les fonctionnalités, ce module n'est pas nécessaire. Sinon, vous devez appeler ses interfaces pour implémenter les fonctionnalités correspondantes.

Après avoir consulté la page Présentation de JOGOS_SDK et la section relative à votre moteur de jeu, vous pouvez utiliser les fonctionnalités comme suit :

javascript
window.JOGOS_SDK.user;

Obtenir les informations de l'utilisateur actuel

Vous pouvez utiliser la méthode suivante pour récupérer les informations du joueur actuel :

javascript
try {
  const user = await window.JOGOS_SDK.user.getUser();
  console.log("Résultat de l'obtention de l'utilisateur", user);
} catch (err) {
  // Gérer l'exception
  console.error(err);
}

Si le joueur actuel n'est pas enregistré ou connecté, le système ouvrira automatiquement une boîte de dialogue d'inscription/connexion, demandant à l'utilisateur de s'inscrire ou de se connecter avant de continuer le jeu. Sinon, une exception 401 Non autorisé, veuillez vous reconnecter sera retournée.

Si le compte du joueur a été gelé ou supprimé, des messages d'exception correspondants seront également retournés.

La structure de l'objet joueur retourné avec succès est la suivante :

typescript
// Information utilisateur
export interface UserInfo {
  // ID utilisateur
  userId: string;
  // Nom d'utilisateur
  username: string;
  // URL de la photo de profil
  profilePictureUrl: string;
  // ID du jeu
  gameId: number;
}

Les noms d'utilisateur JOGOS_SDK doivent contenir entre 6 et 20 caractères et peuvent inclure des lettres, des chiffres, des points et des underscores.

Remarque : Information sur les jeux multi-personnages avec un seul compte

JOGOS_SDK associe le UserId au compte joueur de manière univoque. Si votre jeu permet la création de plusieurs personnages ou le changement entre serveurs, votre serveur doit gérer cette logique pour éviter la perte ou l'échec du changement entre personnages.

Obtenir le token utilisateur (nécessite une intégration avec votre serveur de jeu)

Le token utilisateur contient des informations sur le joueur actuellement connecté. Vous devez l'envoyer à votre serveur lorsque nécessaire, où il peut être vérifié/décodé pour extraire des informations pertinentes. Ceci est utile pour associer des comptes utilisateurs.

Vous pouvez utiliser la méthode suivante pour récupérer le token utilisateur :

javascript
try {
  const token = await window.JOGOS_SDK.user.getUserToken();
  console.log("Résultat de l'obtention du token", token);
} catch (err) {
  // Gérer l'exception
  console.error(err);
}

Le token a une durée de vie de 1 heure. Nous recommandons de ne pas stocker le token et de toujours appeler cette méthode lorsque nécessaire.

Si le joueur actuel n'est pas enregistré ou connecté, le système ouvrira automatiquement une boîte de dialogue d'inscription/connexion. Sinon, une exception 401 Non autorisé, veuillez vous reconnecter sera retournée.

Si le compte du joueur a été gelé ou supprimé, des messages d'exception correspondants seront également retournés.

Le token retourné peut être décodé et testé sur jwt.io.

Le token retourné avec succès contient les données suivantes :

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
}
Ne pas décrypter les tokens côté client
Assurez-vous de ne pas décrypter les tokens utilisateur côté client, car cela n'est pas sécurisé.

Lorsque vous avez besoin d'authentifier des requêtes en utilisant votre serveur, vous devez envoyer le token à votre backend, où il peut être décodé et vérifié. Vous pouvez utiliser cette Clé publique du token utilisateur hébergée publiquement pour vérifier le token. Nous recommandons d'obtenir la clé à chaque vérification de token, car elle peut changer.

Voici un exemple de décodage et vérification de token en utilisant TypeScript et la clé publique :

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 = `...`; // Obtenir depuis https://www.jogos.com/sdk/public-key.txt
  const payload = jwt.verify(token, key, { algorithms: ['RS256'] });

  return payload as CrazyTokenPayload;
};

Tests locaux

Lors des tests locaux, les interfaces du module Utilisateur retournent uniquement des données simulées.