> For the complete documentation index, see [llms.txt](/llms.txt)

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

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



## モデル

### EzAccessToken

アクセストークン<br>

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

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


---

## メソッド

### login

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

[GS2-Account::Authentication](../../account/game_engine/#authentication) で取得した `body` と `signature` を渡してログインし、`アクセストークン` を受け取ります。<br>
`アクセストークン` は有効期限1時間の一時的なログイン情報で、GS2 の各サービスをそのプレイヤーとして利用するために必要です。<br>

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

#### Request

|  | 型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 |
| --- | --- | --- | --- | --- | --- | --- |
| keyId | string |  | | "grn:gs2:{region}:{ownerId}:key:default:key:default" |  ~ 1024文字 | 暗号鍵GRN |
| body | string |  | ✓|  |  ~ 524288文字 | 署名対象のアカウント認証情報 |
| signature | string |  | ✓|  |  ~ 1024文字 | 署名 |

#### Result

|  | 型 | 説明 |
| --- | --- | --- |
| token | string | アクセストークン<br>アクセスを認証するためのトークンです。<br>このトークンはシステムによって自動的に生成され、ユーザーのセッションを識別します。|
| userId | string | ユーザーID|
| expire | long | 有効期限<br>トークンの有効期限を示すタイムスタンプです。この時刻に達すると、トークンは無効になります。<br>UNIX 時間・ミリ秒|

#### 実装例




**Unity (UniTask)**
```csharp
    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;

```

**Unity (Vanilla)**
```cs
    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;

```

**Unreal Engine 5**
```cpp
    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;

```


---



