Skip to content

Utente

Il modulo Utente fornisce la funzionalità per ottenere le informazioni e il Token dell'utente già loggato. Se il gioco permette di utilizzare tutte le funzionalità senza effettuare il login, non è necessario utilizzare questo modulo; in caso contrario, è necessario chiamare le relative interfacce di questo modulo per implementare le funzionalità corrispondenti.

Dopo aver letto la sezione relativa al tuo motore di gioco nella pagina Introduzione a JOGOS_SDK, puoi utilizzare le funzionalità correlate nel seguente modo:

javascript
window.JOGOS_SDK.user;

Ottenere le informazioni sull'utente corrente

Puoi utilizzare il seguente metodo per recuperare le informazioni sull'utente corrente:

javascript
try {
  const user = await window.JOGOS_SDK.user.getUser();
  console.log("Get user result", user);
} catch (err) {
  // Gestire l'eccezione
  console.error(err);
}

Se l'utente corrente non è registrato o non ha effettuato il login, il sistema aprirà automaticamente il dialogo di login/registrazione chiedendo all'utente di registrarsi o di effettuare il login con successo per continuare il gioco; in caso contrario, verrà restituito l'errore 401 Non autorizzato, effettua nuovamente il login.

Se l'account dell'utente corrente è stato bloccato o cancellato, verranno restituiti anche i corrispondenti messaggi di errore.

La struttura dell'oggetto utente restituito con successo è la seguente:

typescript
// Informazioni sull'utente
export interface UserInfo {
  // ID utente
  userId: string;
  // Nome utente
  username: string;
  // URL dell'avatar
  profilePictureUrl: string;
  // ID gioco
  gameId: number;
}

Il nome utente di JOGOS_SDK deve essere composto da 6-20 caratteri e può contenere lettere, numeri, punti e underscore.

Attenzione: Messaggio per giochi con più personaggi per un singolo account

Il UserId di JOGOS_SDK è in corrispondenza uno-a-uno con l'account dell'utente. Se il tuo gioco permette di creare più personaggi o di switchare tra personaggi su più server, il tuo server deve gestire questa logica per evitare la perdita o l'impossibilità di switchare tra i personaggi dell'utente.

Ottenere il token utente (necessario per il tuo server di gioco)

Il token utente contiene informazioni relative all'utente attualmente loggato. Dovresti inviarlo al tuo server quando necessario e verificarlo/decodificarlo al suo interno per estrarre le informazioni correlate, il che è utile per associare gli account utente.

Puoi utilizzare il seguente metodo per recuperare il token utente:

javascript
try {
  const token = await window.JOGOS_SDK.user.getUserToken();
  console.log("Get token result", token);
} catch (err) {
  // Gestire l'eccezione
  console.error(err);
}

La durata di vita del token è di 1 ora. Consigliamo di non memorizzare il Token e di chiamare sempre questo metodo quando hai bisogno del Token.

Se l'utente corrente non è registrato o non ha effettuato il login, il sistema aprirà automaticamente il dialogo di login/registrazione chiedendo all'utente di registrarsi o di effettuare il login con successo per continuare il gioco; in caso contrario, verrà restituito l'errore 401 Non autorizzato, effettua nuovamente il login.

Se l'account dell'utente corrente è stato bloccato o cancellato, verranno restituiti anche i corrispondenti messaggi di errore.

Il token restituito può essere decodificato e testato su jwt.io.

Le informazioni del token restituito con successo contengono i seguenti dati:

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
}
Non decodificare il token sul client
Assicurati di non decodificare il token utente sul client, poiché questo non è sicuro

Quando hai bisogno di utilizzare il server per autenticare le richieste, dovresti inviare il token al tuo server, quindi decodificarlo e verificarlo. Puoi utilizzare la chiave pubblica ospitata in questo Chiave pubblica per token utente per verificare il token. Consigliamo di ottenere la chiave ogni volta che verifichi il token, poiché potrebbe cambiare.

Ecco un esempio di decodifica e verifica del token utilizzando TypeScript e la chiave pubblica:

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

  return payload as CrazyTokenPayload;
};

Test locale

Durante il test locale, le interfacce correlate del modulo utente restituiscono solo dati simulati.