ユーザー
ユーザーモジュールは、現在のログイン済みプレイヤーの情報とToken
を取得する機能を提供します。ゲームがログインなしですべての機能を体験できる場合は、このモジュールを使用する必要はありません。それ以外の場合は、このモジュールの関連インターフェースを呼び出して対応する機能を実装する必要があります。
JOGOS_SDK の概要
ページで自分のゲームエンジンに関連する部分を読んだ後、以下の方法で関連機能を使用できます:
window.JOGOS_SDK.user;
現在のユーザー情報を取得する
以下の方法を使用して、現在のプレイヤーの情報を取得できます:
try {
const user = await window.JOGOS_SDK.user.getUser();
console.log("Get user result", user);
} catch (err) {
// 例外を処理する
console.error(err);
}
現在のプレイヤーが登録されていないかログインしていない場合、システムは自動的にログイン/登録ダイアログを開き、ユーザーに登録または正常にログインするよう要求します。そうしないと、401 未認可、再ログインしてください
の例外が返されます。
現在のプレイヤーのアカウントが凍結または削除されている場合も、対応する例外情報が返されます。
正常に返されるプレイヤーオブジェクトの構造は以下のとおりです:
// ユーザー情報
export interface UserInfo {
// ユーザー ID
userId: string;
// ユーザー名
username: string;
// アバター URL
profilePictureUrl: string;
// ゲーム ID
gameId: number;
}
JOGOS_SDK
のユーザー名は6~20文字で、英字、数字、ピリオド、アンダースコアを含めることができます。
JOGOS_SDK の UserId はプレイヤーアカウントと一対一で対応しています。もし貴社のゲームで複数のゲームキャラクターを作成したり、複数サーバー間でキャラクターを切り替えたりできる場合は、プレイヤーの複数キャラクターが消失したり切り替えできなくなったりするのを防ぐため、貴社のサーバー側でこのロジックを処理する必要があります。
ユーザートークンの取得(ゲームサーバー側の接続が必要)
ユーザートークンには、現在ログインしているプレイヤーの関連情報が含まれています。必要に応じてサーバーに送信し、サーバー側で検証/デコードして関連情報を抽出する必要があります。これはユーザーアカウントの関連付けに非常に役立ちます。
以下の方法を使用してユーザートークンを取得できます:
try {
const token = await window.JOGOS_SDK.user.getUserToken();
console.log("Get token result", token);
} catch (err) {
// 例外を処理する
console.error(err);
}
トークンの有効期間は1時間です。Token を保存しないで、必要なときは常にこのメソッドを呼び出すことを推奨します。
現在のプレイヤーが登録されていないかログインしていない場合、システムは自動的にログイン/登録ダイアログを開き、ユーザーに登録または正常にログインするよう要求します。そうしないと、401 未認可、再ログインしてください
の例外が返されます。
現在のプレイヤーのアカウントが凍結または削除されている場合も、対応する例外情報が返されます。
返されたトークンはデコードしてjwt.ioでテストすることができます。
正常に返されるトークン情報には以下のデータが含まれています:
{
"jti": "1899405772252258304",
"sub": "{\"profilePictureUrl\":\"a33bf366e34d48e984a094fc923d7b06.png\",\"gameId\":\"1\",\"profileDefaultAvatar\":\"default-avatar.png\",\"userId\":\"88E1B72FED537C6943C85C28F639BE0B\",\"username\":\"55895999999999999999\"}",
"iss": "com:jogos:sdk",
"iat": 1741688600,
"exp": 1745288600
}
サーバーを使用してリクエストの認証を行う必要がある場合は、トークンを自分のサーバーに送信し、トークンのデコードと検証を行う必要があります。この ユーザートークン公開鍵
でホストされている公開鍵を使用してトークンを検証できます。公開鍵は変更される可能性があるため、トークンを検証するたびに鍵を取得することを推奨します。
以下は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 = `...`; // https://www.jogos.com/sdk/public-key.txt から取得
const payload = jwt.verify(token, key, { algorithms: ["RS256"] });
return payload as CrazyTokenPayload;
};
ローカルテスト
ローカルテスト時、ユーザーモジュールの関連インターフェースは単に模擬データを返すだけです。