https://login.xsolla.com/api
このセクションでは、ログイン を操作するための API 呼び出しについて説明します。リクエストを送信する前に、パブリッシャー アカウント でログイン プロジェクトを セットアップ してください。
The full list of IP addresses that login.xsolla.com may use:
アドミンページでは、次のログインプロジェクトタイプにアクセスできます:
詳細については、クロスプラットフォームアカウント機能を参照してください。
Are the restrictions applied by Xsolla API on the frequency of access by a user within a defined timeframe.
標準ログインプロジェクトで作成され、プラットフォームアカウントにリンクされているアカウントタイプです。メインアカウントは、異なるプラットフォームでプレーヤーを識 別するために使用されます。
シャドウログインプロジェクトで作成され、確定したパブリッシングプラットフォームに接続されるアカウントタイプです。プラットフォームアカウントは、他のプラットフォー ムアカウントとリンクすることはできません。また、メインアカウントからアカウントのリンクを解除することもできません。
Login APIは、以下のトークンタイプをサポートしています:
認証スキームによって、APIコールがクライアント側かサーバー側かを判断できます:
Authorization
header: Bearer <user_JWT>
header,
where <user_JWT>
— is the user token.X-SERVER-AUTHORIZATION: <server_JWT>
, where
<server_JWT>
— is the server token.トークンを取得するには、次のいずれかのリクエストを送信します:
JWT認証後、ユーザーはクエリパラメータにトークンを含むコールバックURLにリダイレクトされます:<Callback URL>?token=<User token (JWT)>
。
OAuth
2.0プロトコルベースの認証後、JWTを生成するリクエストをエクソーラログインサーバーに送信して、受信したcode
パラメータをユーザートークン(access_token
)と交換します。
サーバートークンを取得するには:
アプリケーションのバックエンドで、JWT APIを生成するコールを使用してサーバーJWTを取得するメソッドを実装します。リクエストには次のパラメータが含まれている必要があります。
grant_type
is the type of getting JWT, pass the client_credentials
value.client_secret
is the secret key that is received when you set up the server
OAuth 2.0 client.client_id
is the client ID received when you set up the server OAuth 2.0
client.To prevent Xsolla system overloads and protect against sudden spikes in
incoming traffic, Xsolla limits the number of requests received by the Xsolla
API within a specified period of time. If the limit is exceeded, the Xsolla API
returns an HTTP response with the 429
status code.
Rate limits vary by method, IP-address, authentication scheme, and other factors.
Rate limits for server-side methods are applied to methods with server-side
authentication — methods that are called with the X-SERVER-AUTHORIZATION:
<server_JWT>
header, where <server_JWT>
is the server
token.
Rate limits for client-side methods are applied to methods without
authentication or with client-side authentication — methods that are called
with the Authorization: Bearer <user_JWT>
header, where
<user_JWT>
is the user token.
Example of a method with server-side authentication: Example of a method with client-side authentication:
Rate limits for client-side methods do not change and are necessary to prevent brute-force attacks. The maximum request rate for server-side methods is higher than for client-side methods. You can refer to the recommendations on how to manage rate limits in the documentation.
すべてのトークンにはJWTフォーマットがあり、ペイロードに明確な情報が含まれています。
ユーザーJWTは、認証または登録の結果として受け取ったトークンです。トークンのペイロードには、ユーザーと認証のコールに関する情報が含まれています。
OAuth 2.0プロトコルでユーザートークンを取得するには、OAuth 2.0クライアントが必要です。ユーザートークンは、Authorization: Bearer <JWT>
ヘッダで渡されます。
トークンには、認証またはメールアドレス確認後の主な要求が含まれます。これらの要求の有無は、ユーザーデータベースや認証コールに依存しません。
クレーム | タイプ | 必須 | 説明 |
exp |
Unixタイムスタンプ | はい | トークンの有効期限を設定する日時。デフォルトの有効期限は24時間です。有効期限は、ログインプロジェクトごとに変更できます。 |
iss |
文字列 | はい | トークンに署名したサービス:https://login.xsolla.com 。 |
iat |
Unixタイムスタンプ | はい | トークンを発行した日時。 |
sub |
文字列(UUID) | はい | エクソーラログインサーバー側に書き込まれたユーザーID。 |
groups |
配列 | はい |
ユーザーが所属しているグループのリスト。各グループは以下のフォーマットで書かれます:
デフォルトグループは1つしか存在できません。このグループには、異なるグループに分散される前のすべてのユーザーが初期状態で含まれています。 |
xsolla_login_project_id |
文字列(UUID) | はい | ログインプロジェクトID。 |
type |
文字列 |
認証オプション:
デフォルトグループは1つしか存在できません。このグループには、異なるグループに分散される前のすべてのユーザーが初期状態で含まれています。 |
|
avatar |
文字列 | ユーザーのアバターURL。 | |
username |
文字列 | ユーザー名。 | |
publisher_id |
integer | ログインプロジェクトを所有するマーチャントのID。 | |
email |
文字列 | ユーザーのメールアドレス。 | |
payload |
文字列 | 認証時にペイロードパラメータで渡される追加情報。 | |
promo_email_agreement |
ブール型 |
次のいずれかの値になります:
true の値になります。
ログインウィジェットの登録フォームに機能を追加するには:
|
|
connection_information |
文字列 | ユーザーが生年月日を確認したかどうかを表示します。確認はoknameサービスを通じて行われます。 |
PlayFabストレージを使用する場合、認証後にトークンに含まれる要求。
クレーム | タイプ | 必須 | 説明 |
external_account_id |
文字列 | はい | ユーザーPlayFab ID。 |
session_ticket |
文字列 | はい |
PlayFab APIへの認証リクエストまたはリクエストの間に受け取ったSessionTicketパラメータです。 OAuth 2.0プロトコルを経由でユーザーを認証し、 |
entity_token |
文字列 | はい | EntityToken.EntityTokenパラメータ。 |
entity_type |
文字列 | はい | EntityToken.Entity.Typeパラメータ。 title_player_account の値のみを持つことができます。 |
entity_id |
文字列 | はい | EntityToken.Entity.Idパラメータ。 |
カスタムストレージを使用する場合、認証後にトークンに含まれる要求。
クレーム | タイプ | 必須 | 説明 |
provider |
文字列 | はい | 認証に使用されるソーシャルネットワークの名前。ユーザーがユーザー名とパスワード経由で認証する場合、要求にはxsolla 値が含まれます。 |
external_account_id |
文字列 | サーバー側のユーザーID。 | |
partner_data |
認証時にサーバーからレスポンスボディに返される任意のタイプのデータ。 |
ソーシャルネットワーク経由の認証後、トークンに含まれる要求。これらの要求の存在は、ユーザーデータベースに依存しません。
クレーム | タイプ | 必須 | 説明 |
provider |
文字列 | はい | 認証に使用されるソーシャルネットワークの名前。 |
id |
文字列 | はい | ソーシャルネットワークにおけるユーザーID。 |
is_cross_auth |
ブール型 | サイレント認証のリクエストが進行中であることを示します。 | |
social_access_token |
文字列 | 認証に使用するソーシャルネットワークアカウントのaccess_token パラメータ。この機能をセットアップするには、アカウントマネージャーにお問い合わせください。 |
|
picture |
文字列(URL) | ソーシャルネットワークにおけるユーザープロフィール画像へのリンク。 | |
birthday |
日付(RFC3339) | ソーシャルネットワークにおけるユーザーの誕生日。 | |
gender |
文字列 | ソーシャルネットワークにおけるユーザー性別。 | |
name |
文字列 | ソーシャルネットワークにおけるユーザーニックネーム。 |
電話番号経由の認証後、トークンに含まれる要求。
クレーム | タイプ | 必須 | 説明 |
phone_number |
文字列 | はい | 認証に使用されるユーザーの電話番号。電話番号は、国番号、市外局番、回線番号からなる区切りのない形式です。 |
サーバートークンは、X-SERVER-AUTHORIZATION
ヘッダーで渡されます。
トークンのペイロードには、OAuth 2.0クライアントが所有するリソースに関する情報が含まれています。トークンは、これらのリソースに対するサーバーベースの認証によるコールにアクセスできます。
クレーム | タイプ | 必須 | 説明 |
xsolla_login_project_id |
文字列(UUID) | はい | OAuth 2.0クライアントを所有するログインプロジェクトのID。 |
resources |
配列 | はい |
OAuth 2.0クライアントが所有するリソースのリスト。可能なリソースのタイプ:
各グループは以下のフォーマットで書かれます:
|
jti |
文字列 | はい | 一意のトークンID。 |
To validate the JWT, use the following Login API calls:
通知
秘密鍵は他人に教えないでください。漏洩した場合は、更新してください。
エラー応答の場合、エクソーラログインサーバーは以下のフィールドを持つJSONオブジェクトを返します:
フィールド | タイプ | 説明 |
code | 文字列 | エクソーラログインサーバーのエラーコード。 |
説明 | 文字列 | エラーの説明。テキストは常に英語です。値は将来変更される可能性があるため、エラーの場合はこのテキストを使用しないでください。 |
{
"error": {
"code": "000-000",
"description": "description"
}
}
コード | 説明 |
0 | リクエストに無効なパラメータがあります。 |
010-019 | クライアント認証に失敗しました(例:不明なクライアント、クライアント認証が含まれていない、またはサポートされていない認証方法)。 |
010-022 | 8文字未満であるため、パラメータの状態が欠落しているか、弱すぎます。 |
010-023 | 認可付与またはリフレッシュトークンが無効、期限切れ、取り消し、認可リクエストで使用されたリダイレクトURIと一致しない、または別のクライアントに対して発行されています。 |
コード | 説明 |
002-016 | 無効なトークン。 |
002-040 | 禁止されたユーザーを認証できません。 |
003-001 | ユーザー名またはパスワードが間違っています。 |
003-007 | ユーザーアカウントが確認されていません。 |
003-025 | OAuth2.0アクセストークンの取得中にエラーが発生しました。 |
003-040 | 未認証のユーザー。 |
010-026 | エクソーラログインサーバーまたはリソース所有者がリクエストを拒否しました。 |
コード | 説明 |
0 | ニックネームがクエリで見つかりませんでした。 |
002-050 | ユーザーの二要素認証設定は変更されていません。 |
003-003 | 指定されたユーザー名を持つユーザーは既に存在しています。 |
003-020 | このログインプロジェクトではコールを利用できません。 |
003-022 | このログインプロジェクトは間違って構成されています。エクソーラアドミンページでこのログインプロジェクトの設定を変更するか、アカウントマネージャーにお問い合わせください。 |
003-033 | プロジェクトタイプが一致しません。 |
006-003 | OAuth 2.0クライアントで、client_credentialsグラントタイプのみ、アクセスリストを持つことができます。 |
010-015 | ソーシャルネットワーク認証に失敗しました:SERVICE_NAME。 |
010-016 | このソーシャルアカウントは既に別のユーザーとリンクしています。 |
010-032 | このログインプロジェクトでは、このソーシャルネットワークを介した認証が有効になっていません。エクソーラアドミンページ > ログイン > あなたのログインプロジェクト > ソーシャルコネクションで有効にしてください。 |
030-024 | このログインプロジェクトではパスワードのリセットが無効になっています。 |
2002-0001 | 属性が重複しています。 |