GS2-Auth SDK for Game Engine API リファレンス

ゲームエンジン向け GS2-Auth SDK の モデルの仕様 と API のリファレンス

モデル

EzAccessToken

アクセストークン

ユーザー認証後に発行されるアクセストークンを管理するモデルです。
アクセストークンは、ユーザーがサービスにログインしている間、そのセッションの身元を証明するために使用されます。
トークンには有効期限が設定されており、期限切れになると再認証が必要になります。

有効化条件必須デフォルト値の制限説明
tokenstring
~ 1024文字アクセストークン
アクセスを認証するためのトークンです。
このトークンはシステムによって自動的に生成され、ユーザーのセッションを識別します。
userIdstring
~ 128文字ユーザーID
expirelong現在時刻から1時間後の絶対時刻有効期限
トークンの有効期限を示すタイムスタンプです。この期限が過ぎると、トークンは無効になります。
UNIX 時間・ミリ秒

メソッド

login

アカウントの認証情報を使って GS2 にログインする

GS2-Account::Authentication で取得した bodysignature を渡してログインし、アクセストークン を受け取ります。
アクセストークン は有効期限1時間の一時的なログイン情報で、GS2 の各サービスをそのプレイヤーとして利用するために必要です。

通常、このAPIを直接呼び出す必要はありません。
Unity や Unreal Engine 5 の SDK では、GS2-Account::Authentication とこのAPIをまとめて実行する Profile::Login が用意されています。
詳しくは 初期化処理 / Game Engine を参照してください。

Request

有効化条件必須デフォルト値の制限説明
keyIdstring“grn:gs2:{region}:{ownerId}:key:default:key:default”~ 1024文字暗号鍵 GRN
bodystring
~ 524288文字署名対象のアカウント認証情報
signaturestring
~ 1024文字署名

Result

説明
tokenstringアクセストークン
アクセスを認証するためのトークンです。
このトークンはシステムによって自動的に生成され、ユーザーのセッションを識別します。
userIdstringユーザーID
expirelong有効期限
トークンの有効期限を示すタイムスタンプです。この期限が過ぎると、トークンは無効になります。
UNIX 時間・ミリ秒

実装例

    var domain = gs2.Auth.AccessToken(
    );
    var result = await domain.LoginAsync(
        body: "body",
        signature: "signature",
        keyId: "key-0001"
    );
    var token = result.Token;
    var userId = result.UserId;
    var expire = result.Expire;
    var domain = gs2.Auth.AccessToken(
    );
    var future = domain.LoginFuture(
        body: "body",
        signature: "signature",
        keyId: "key-0001"
    );
    yield return future;
    if (future.Error != null)
    {
        onError.Invoke(future.Error, null);
        yield break;
    }
    var token = future.Result.Token;
    var userId = future.Result.UserId;
    var expire = future.Result.Expire;
    const auto Domain = Gs2->Auth->AccessToken(
    );
    const auto Future = Domain->Login(
        "body", // body
        "signature", // signature
        "key-0001" // keyId
    );
    Future->StartSynchronousTask();
    if (Future->GetTask().IsError())
    {
        return false;
    }
    const auto Result = Future->GetTask().Result();
    const auto Token = Result->Token;
    const auto UserId = Result->UserId;
    const auto Expire = Result->Expire;