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 :
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 :
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 :
// 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.
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 :
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 :
{
"jti": "1899405772252258304",
"sub": "{\"profilePictureUrl\":\"a33bf366e34d48e984a094fc923d7b06.png\",\"gameId\":\"1\",\"profileDefaultAvatar\":\"default-avatar.png\",\"userId\":\"88E1B72FED537C6943C85C28F639BE0B\",\"username\":\"55895999999999999999\"}",
"iss": "com:jogos:sdk",
"iat": 1741688600,
"exp": 1745288600
}
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 :
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.