Skip to content

Benutzer

Das Benutzermodul bietet Funktionen zum Abrufen von Informationen über den aktuellen angemeldeten Spieler und dessen Token. Wenn das Spiel keine Anmeldung erfordert, um alle Funktionen zu nutzen, muss dieses Modul nicht verwendet werden. Andernfalls müssen die entsprechenden Schnittstellen dieses Moduls aufgerufen werden.

Nach dem Lesen des Abschnitts zu Ihrer Spiel-Engine auf der Seite JOGOS_SDK Einführung können die Funktionen wie folgt genutzt werden:

javascript
window.JOGOS_SDK.user;

== Cocos

javascript
JOGOS_SDK.user;

== Unity

csharp
JogosSDK.User

:::

Abrufen der aktuellen Benutzerinformationen

Sie können die Informationen des aktuellen Spielers mit der folgenden Methode abrufen:

::: tabs key:engine

== HTML5

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

== Cocos

javascript
try {
  const user = await JOGOS_SDK.user.getUser();
  console.log('Get user result', user);
} catch (err) {
  // Fehler behandeln
  console.error(err);
}

== Unity

csharp
JogosSDK.User.GetUser(
  (user) =>
  {
    if (user != null)
    {
      // Informationen erfolgreich abgerufen
    }
    else
    {
      // Abruf der Informationen fehlgeschlagen
    }
  }
);

:::

Wenn der aktuelle Spieler nicht registriert oder nicht angemeldet ist, öffnet das System automatisch den Registrierungs-/Login-Dialog, damit der Spieler sich registriert oder erfolgreich anmeldet. Andernfalls wird der Fehler 401 Unauthorized, please login again zurückgegeben.

Wenn das Konto des Spielers gesperrt oder gelöscht wurde, werden ebenfalls entsprechende Fehler zurückgegeben.

Die Struktur des Spielerobjekts bei erfolgreicher Rückgabe ist wie folgt:

::: tabs key:engine

== HTML5

typescript
// Benutzerinformationen
export interface UserInfo {
  // Benutzer Id
  userId: string;
  // Benutzername
  username: string;
  // Avatar-URL
  profilePictureUrl: string;
  // Spiel Id
  gameId: number;
}

== Cocos

typescript
// Benutzerinformationen
export interface UserInfo {
  // Benutzer Id
  userId: string;
  // Benutzername
  username: string;
  // Avatar-URL
  profilePictureUrl: string;
  // Spiel Id
  gameId: number;
}

== Unity

csharp
public class UserInfo
{
  // Benutzer Id
  public string userId;
  // Benutzername
  public string username;
  // Avatar-URL
  public string profilePictureUrl;
  // Spiel Id
  public int gameId;
}

:::

Der Benutzername in JOGOS_SDK muss 6–20 Zeichen lang sein und kann Buchstaben, Zahlen, Punkte und Unterstriche enthalten.

Hinweis: Spiel mit mehreren Charakteren pro Konto

JOGOS_SDK UserId entspricht genau einem Spielerkonto; wenn Ihr Spiel mehrere Charaktere erstellen oder zwischen Servern wechseln kann, muss Ihr Server diese Logik handhaben, um den Verlust von Charakteren oder Probleme beim Wechseln zu vermeiden.

Abrufen des Benutzertokens (mit Unterstützung Ihres Spielservers)

  • Wenn Sie einen Server haben, ist die Integration erforderlich!
  • Das Benutzertoken enthält Informationen über den aktuell angemeldeten Spieler. Sie müssen es an Ihren Server senden und dort verifizieren/dekodieren, um die relevanten Informationen zu extrahieren und mit Ihrem Benutzersystem auf dem Server zu verknüpfen. Achten Sie darauf, dass die Benutzerdaten während dieses Prozesses sicher bleiben.

Ihr Client kann das Token wie folgt abrufen:

::: tabs key:engine

== HTML5

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

== Cocos

javascript
try {
  const token = await JOGOS_SDK.user.getUserToken();
  console.log('Get token result', token);
} catch (err) {
  // Fehler behandeln
  console.error(err);
}

== Unity

csharp
JogosSDK.User.GetUserToken(
  (token) =>
  {
    if (token != null)
    {
      // Erfolgreich
    }
    else
    {
      // Fehlgeschlagen
    }
  }
);

:::

Das Token ist 1 Stunde gültig. Es wird empfohlen, das Token nicht zu speichern und es immer bei Bedarf abzurufen.

Wenn der aktuelle Spieler nicht registriert oder nicht angemeldet ist, öffnet das System automatisch den Registrierungs-/Login-Dialog. Andernfalls wird der Fehler 401 Unauthorized, please login again zurückgegeben.

Wenn das Konto des Spielers gesperrt oder gelöscht wurde, wird eine entsprechende Fehlermeldung zurückgegeben.

Das zurückgegebene Token kann dekodiert und auf jwt.io getestet werden.

Beispiel für die zurückgegebenen Token-Daten:

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
}
Token nicht im Client dekodieren
Bitte dekodieren Sie das Benutzertoken nicht im Client. Dies ist unsicher und muss auf Ihrem Server erfolgen.

Wenn Sie den Server zur Authentifizierung von Anfragen verwenden, senden Sie das Token an den Server, dekodieren und verifizieren es dort. Sie können dafür den öffentlichen Benutzertoken-Schlüssel https://www.jogos.com/publicKey.json verwenden. Es wird empfohlen, den Schlüssel bei jeder Verifizierung abzurufen, da er sich ändern kann.

Nächster Schritt: Serverseitige Verifizierung

Für serverbezogene APIs siehe die Seite: Server-API

Lokaler Test

Beim lokalen Testen liefern die Schnittstellen des Benutzermoduls nur simulierte Daten.