Connect Web APIs

Connect インターフェース Web API を使用して、EOS ゲーム サービス Web API で認証する

7 分で読めます

リクエストを行う認証済みクライアントの識別のためにアクセス トークンを必要とする Web API を介して EOS ゲーム サービスにアクセスすることができます。クライアントは、独立したクライアントとして (クライアント アクセス トークン)、またはユーザーに代わって (ユーザー アクセス トークン) アクセストークンを要求できます。

たとえば、Web アプリケーションは、プレイヤーにアカウント リンク 管理機能を提供するためにユーザーを認証する場合があります。独立したクライアントは、EOS Voice バックエンド サービスがホストするボイス チャットルームを調整するパブリッシャーがホストするバックエンドである可能性があります。

EOS アクセス トークンを要求する

EOS Connect バックエンドは、EOS ゲームサービス Web API のアクセス トークンを要求するための OAuth2.0 トークン エンドポイントを提供します。

EOS Connect トークン エンドポイントは以下の通りです。

https://api.epicgames.dev/auth/v1/oauth/token

クライアントは 2 種類のアクセス トークンを要求します。

  • クライアント アクセス トークン: 汎用製品のレベル レベルのバックエンド サービスとインタラクトする独立したクライアントによって使用されます。
  • ユーザー アクセス トークン: 認証済みユーザーに代わってバックエンド サービスとインタラクトするクライアントによって使用されます。

クライアントがアクセス トークンを要求するときは、製品の一連の有効なクライアント資格情報を提供する必要があります。Product Settingsデベロッパー ポータル で製品ごとに クライアント を作成することができます。

クライアントは次の 2 つの方法のいずれかでクライアント資格情報を渡すことができます。

  • 標準の Authorization HTTP ヘッダを使用する
  • POST パラメータを使用する

トークン リクエスト

HTTP メソッド

POST /auth/v1/oauth/token

HTTP ヘッダ

名前説明
AuthorizationBasic <Base64(ClientId:ClientSecret)>.Example: Basic Q2xpZW50SWQ6Q2xpZW50U2VjcmV0
Content-Typeapplication/x-www-form-urlencoded

POST ボディ パラメータ

名前説明
grant_typeクライアント アクセスの場合 client_credentials を使用します。ユーザー アクセスには external_auth を使用します。
client_id クライアント資格情報 ID です。Authorization HTTP ヘッダが使用されない場合に必要です。
client_secretクライアント資格情報シークレット。Authorization HTTP ヘッダが使用されない場合に必要です。
nonce追加のセキュリティを与えるクライアントによって提供される任意の文字列型の値です。正しいナンス値を確認するため、クライアントの API レスポンスに含まれます。ユーザー アクセスのために必要です。
deployment_idユーザー アクセスに必要なアクセスを要求するためのターゲット EOS デプロイ。
external_auth_token外部アカウント システムにおいてユーザー アカウントを識別する外部認証トークン。ユーザー アクセスに必要です。
external_auth_type外部認証トークンのタイプを識別します。ユーザー アクセスに必要です。可能性のある値は以下の通りです。amazon_access_token, apple_id_token, discord_access_token, epicgames_access_token, epicgames_id_token, gog_encrypted_sessionticket, google_id_token, itchio_jwt, itchio_key, nintendo_id_token, oculus_userid_nonce, openid_access_token, psn_id_token, steam_access_token, steam_encrypted_appticket, xbl_xsts_token

リクエストの例

curl -X "POST" "https://api.epicgames.dev/auth/v1/oauth/token" \ -H "Content-Type:application/x-www-form-urlencoded" \ -H "Accept:application/json" \ -H "Authorization:Basic Q2xpZW50SWQ6Q2xpZW50U2VjcmV0" \ -d "grant_type=client_credentials&deployment_id=<deploymentId>"

トークン レスポンス

HTTP 200 - OK

HTTP ヘッダ

名前説明
Content-Typeapplication/json

JSON ペイロード

名前説明
access_tokenJSON Web Token (JWT) 文字列として生成されたアクセス トークン。アクセス トークンは認証済みのクライアントとユーザーを記述します。
token_type常に bearer に設定されます。
expires_atトークンの有効期限。Unix 時間からの時点を秒単位で表す NumericDate 数値が含まれます。
expires_inトークンの存続時間。発行時からトークンの有効期限が切れるまでの秒数。
nonceトークン要求でクライアントによって提供される任意の文字列型の値。追加セキュリティのためにクライアントが使用します。HTTP 応答でアクセス トークンを受信すると、クライアントは期待するナンス値がトークン応答に含まれていることを確認できます。
organization_id組織の識別子。
product_id 製品の識別子。
sandbox_idサンドボックスの識別子。
deployment_idデプロイの識別子。
featuresクライアントがアクセスを許可されている機能のリスト。機能はデベロッパー ポータルでクライアントに対して有効にすることができます。
organization_user_id組織内の製品全体で EOS ユーザーを一意に識別します。ユーザー アクセス トークンに含まれます。
product_user_id認証された EOS Product User ID。 ユーザーアクセストークンに含まれています。
id_tokenEOS Product User を安全に識別する ID トークン。ユーザー アクセス トークンに含まれます。

受信した access_token は、Authorization HTTP ヘッダで Bearer トークンとして提供することにより、EOS Game Services Web API を呼び出すために使用されます。例: Authorization:Bearer <access_token>.

レスポンスの例

{
"access_token" : "<Access Token>",
"token_type" : "bearer",
"expires_at" :"2021-06-11T23:10:53.491Z",
"expires_in" :3599,
"features" : ["Matchmaking", "Voice"],
"organization_id" : "<Organization ID>",
"product_id" : "<Product ID>",
"sandbox_id" : "<Sandbox ID>",
"deployment_id" : "<Deployment ID>"
}

外部アカウントをクエリする

queryExternalAccountsForAnyUser リクエストは関連づいている製品ユーザー ID を外部アカウント ID から返します。

ポリシー

クライアントは、接続機能に対して queryExternalAccountsForAnyUser クライアント ポリシー アクションを有効する必要があります。

認証