Skip to content

Benutzer

Das Benutzer-Modul bietet die Funktion, Informationen über den aktuell eingeloggten Spieler und das Token abzurufen. Wenn das Spiel alle Funktionen ohne Anmeldung nutzen lässt, ist die Verwendung dieses Moduls nicht erforderlich. Andernfalls müssen die entsprechenden Schnittstellen dieses Moduls aufgerufen werden, um die gewünschten Funktionen zu implementieren.

Nachdem Sie den Abschnitt zur Einführung in das JOGOS_SDK gelesen haben, der für Ihren Spiel-Engine relevant ist, können Sie die entsprechenden Funktionen wie folgt nutzen:

javascript
window.JOGOS_SDK.user;

Abrufen der aktuellen Benutzerinformationen

Sie können die folgenden Methoden verwenden, um die Informationen des aktuell eingeloggten Spielers abzurufen:

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

Wenn der aktuelle Spieler nicht registriert oder nicht eingeloggt ist, öffnet das System automatisch ein Anmelde- oder Registrierungsdialogfeld, um den Benutzer zur Registrierung oder erfolgreichen Anmeldung aufzufordern. Andernfalls wird eine 401 Nicht autorisiert, bitte erneut anmelden-Ausnahme zurückgegeben.

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

Die Struktur des erfolgreich zurückgegebenen Spielerobjekts lautet wie folgt:

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

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

Hinweis: Information für Spiele mit mehreren Rollen pro Account

Die UserId des JOGOS_SDK steht in einem eindeutigen Verhältnis zum Spieleraccount. Wenn Ihr Spiel die Erstellung mehrerer Spielcharaktere oder das Wechseln zwischen verschiedenen Servern unterstützt, muss Ihre Serverlogik diese Funktionalität verwalten, um das Verlustrisiko oder die Unmöglichkeit des Wechsels zwischen verschiedenen Rollen zu vermeiden.

Abrufen des Benutzer-Tokens (erforderlich für die Integration mit Ihrem Spielserver)

Das Benutzer-Token enthält Informationen über den aktuell eingeloggten Spieler. Sie sollten es bei Bedarf an Ihren Server senden und dort verifizieren/decodieren, um die relevanten Informationen zu extrahieren. Dies ist besonders nützlich für die Verknüpfung von Benutzerkonten.

Sie können das Benutzer-Token mit der folgenden Methode abrufen:

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

Die Gültigkeit des Tokens beträgt 1 Stunde. Wir empfehlen, das Token nicht zu speichern und stattdessen immer die Methode aufzurufen, wenn das Token benötigt wird.

Wenn der aktuelle Spieler nicht registriert oder nicht eingeloggt ist, öffnet das System automatisch ein Anmelde- oder Registrierungsdialogfeld, um den Benutzer zur Registrierung oder erfolgreichen Anmeldung aufzufordern. Andernfalls wird eine 401 Nicht autorisiert, bitte erneut anmelden-Ausnahme zurückgegeben.

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

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

Die Informationen im erfolgreich zurückgegebenen Token umfassen die folgenden 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 auf dem Client decodieren
Bitte stellen Sie sicher, dass das Benutzer-Token nicht auf dem Client decodiert wird, da dies unsicher ist.

Wenn Sie den Server zur Authentifizierung von Anfragen nutzen müssen, sollten Sie das Token an Ihren Server senden und es dort decodieren und verifizieren. Sie können dazu den öffentlichen Schlüssel aus dieser öffentlichen Benutzer-Token-Schlüsseldatei verwenden. Wir empfehlen, den Schlüssel bei jeder Token-Verifizierung abzurufen, da er sich ändern kann.

Im Folgenden finden Sie ein Beispiel zur Decodierung und Verifizierung des Tokens mit TypeScript und einem öffentlichen Schlüssel:

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

  return payload as CrazyTokenPayload;
};

Lokaler Test

Bei der lokalen Entwicklung geben die Schnittstellen des Benutzer-Moduls nur simulierte Daten zurück.