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:
window.JOGOS_SDK.user;
Abrufen der aktuellen Benutzerinformationen
Sie können die folgenden Methoden verwenden, um die Informationen des aktuell eingeloggten Spielers abzurufen:
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:
// 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.
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:
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:
{
"jti": "1899405772252258304",
"sub": "{\"profilePictureUrl\":\"a33bf366e34d48e984a094fc923d7b06.png\",\"gameId\":\"1\",\"profileDefaultAvatar\":\"default-avatar.png\",\"userId\":\"88E1B72FED537C6943C85C28F639BE0B\",\"username\":\"55895999999999999999\"}",
"iss": "com:jogos:sdk",
"iat": 1741688600,
"exp": 1745288600
}
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:
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.