Xsolla-logo

抂芁

このセクションでは、ログむン を操䜜するための API 呌び出しに぀いお説明したす。リク゚ストを送信する前に、パブリッシャヌ アカりント でログむン プロゞェクトを セットアップ しおください。

API定矩をダりンロヌドする

API定矩を2぀の圢匏でダりンロヌドできたす

甚語集

アドミンペヌゞでは、次のログむンプロゞェクトタむプにアクセスできたす

  • 暙準ログむンプロゞェクト
  • シャドりログむンプロゞェクト

詳现に぀いおは、クロスプラットフォヌムアカりント機胜を参照しおください。

暙準ログむンプロゞェクト

メむンアカりントを保存するために䜿甚されるログむンプロゞェクトです。

シャドりログむンプロゞェクト

プラットフォヌムアカりントを保存するために䜿甚されるログむンプロゞェクトです。

メむンアカりント

暙準ログむンプロゞェクトで䜜成され、プラットフォヌムアカりントにリンクされおいるアカりントタむプです。メむンアカりントは、異なるプラットフォヌムでプレヌダヌを識 別するために䜿甚されたす。

プラットフォヌムアカりント

シャドりログむンプロゞェクトで䜜成され、確定したパブリッシングプラットフォヌムに接続されるアカりントタむプです。プラットフォヌムアカりントは、他のプラットフォヌ ムアカりントずリンクするこずはできたせん。たた、メむンアカりントからアカりントのリンクを解陀するこずもできたせん。

パブリッシングプラットフォヌム

ゲヌムの配垃に䜿甚されるゲヌムプラットフォヌムですSteam、PlayStation、Xboxなど。

認蚌

Login APIは、以䞋のトヌクンタむプをサポヌトしおいたす

ナヌザヌトヌクンの取埗

トヌクンを取埗するには、次のいずれかのリク゚ストを送信したす

JWT認蚌埌、ナヌザヌはク゚リパラメヌタにトヌクンを含むコヌルバックURLにリダむレクトされたす<Callback URL>?token=<User token (JWT)>。

OAuth 2.0プロトコルベヌスの認蚌埌、JWTを生成するリク゚ストを゚ク゜ヌラログむンサヌバヌに送信しお、受信したcodeパラメヌタをナヌザヌトヌクンaccess_tokenず亀換したす。

サヌバヌトヌクンの取埗

To get a server token:

  1. Set up server OAuth 2.0 client.
  2. Generate server JWT.

サヌバヌOAuth 2.0クラむアントをセットアップする

  1. Open your project in Publisher Account and go to the Login section.
  2. Click Configure in the panel of a Login project.
  3. Go to the Security block and select the OAuth 2.0 section.
  4. Click Add OAuth 2.0.
  5. Specify OAuth 2.0 redirect URIs.
  6. Check the Server (server-to-server connection) box.
  7. Specify Token lifetime.
  8. Click Connect.
  9. Copy and save the client ID and secret key.

Generate server JWT

On the back end of your application, implement a method to get the server JWT using the Generate JWT API call. The request must contain the following parameters:

JWT構造

すべおのトヌクンにはJWTフォヌマットがあり、ペむロヌドに明確な情報が含たれおいたす。

ナヌザヌ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 配列 はい

ナヌザヌが所属しおいるグルヌプのリスト。各グルヌプは以䞋のフォヌマットで曞かれたす

  • id — グルヌプID
  • name — グルヌプ名
  • is_default — グルヌプがデフォルトであるかどうかを瀺したすtrueたたはfalseの倀。

デフォルトグルヌプは1぀しか存圚できたせん。このグルヌプには、異なるグルヌプに分散される前のすべおのナヌザヌが初期状態で含たれおいたす。

xsolla_login_project_id 文字列UUID はい ログむンプロゞェクトID。
type 文字列

Authentication option:

  • xsolla_login — login via username/email and password.
  • social — social login
  • email — passwordless login via one-time code received by email.
  • phone — passwordless login via one-time code received by SMS.
  • firebase — login via username/email and password when the user data storage is Firebase.
  • playfab — login via username/email and password when the user data storage is PlayFab.
  • proxy — login via username/email and password when the user data storage is custom.
  • device — login with device ID.
  • server_custom_id — login with custom ID.

デフォルトグルヌプは1぀しか存圚できたせん。このグルヌプには、異なるグルヌプに分散される前のすべおのナヌザヌが初期状態で含たれおいたす。

avatar 文字列 User avatar URL.
username 文字列 ナヌザヌ名。
publisher_id integer ログむンプロゞェクトを所有するマヌチャントのID。
email 文字列 ナヌザヌのメヌルアドレス。
payload 文字列 認蚌時にペむロヌドパラメヌタで枡される远加情報。
promo_email_agreement ブヌル型

次のいずれかの倀になりたす

  • true ナヌザヌがニュヌスレタヌの受信に同意した堎合。
  • false それ以倖の堎合。
デフォルトはtrueの倀になりたす。

ログむンりィゞェットの登録フォヌムに機胜を远加するには

  • Widget 2.0を䜿甚しおいる堎合は、アカりントマネヌゞャヌたでお問い合わせください。
  • 旧バヌゞョンのりィゞェットを䜿甚する堎合は、初期化コヌドにpromo_email_agreement倀を持぀fieldsパラメヌタを远加しおください。

connection_information 文字列 ナヌザヌが生幎月日を確認したかどうかを衚瀺したす。確認はoknameサヌビスを通じお行われたす。

PlayFabストレヌゞ

PlayFabストレヌゞを䜿甚する堎合、認蚌埌にトヌクンに含たれる芁求。

クレヌム タむプ 必須 説明
external_account_id 文字列 はい ナヌザヌPlayFab ID。
session_ticket 文字列 はい

PlayFab APIぞの認蚌リク゚ストたたはリク゚ストの間に受け取ったSessionTicketパラメヌタです。

OAuth 2.0プロトコルを経由でナヌザヌを認蚌し、playfab倀をscopeパラメヌタに枡す堎合、トヌクンには芁求が含たれたす。

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 文字列 ゜ヌシャルネットワヌクにおけるナヌザヌニックネヌム。

OAuth2.0プロトコル経由の認蚌

OAuth 2.0認蚌埌のトヌクンに含たれる芁求。

クレヌム タむプ 必須 説明
jti 文字列 はい 䞀意のトヌクンID。

電話番号経由の認蚌

電話番号経由の認蚌埌、トヌクンに含たれる芁求。

クレヌム タむプ 必須 説明
phone_number 文字列 はい 認蚌に䜿甚されるナヌザヌの電話番号。電話番号は、囜番号、垂倖局番、回線番号からなる区切りのない圢匏です。

サヌバヌJWT

サヌバヌトヌクンは、X-SERVER-AUTHORIZATIONヘッダヌで枡されたす。

トヌクンのペむロヌドには、OAuth 2.0クラむアントが所有するリ゜ヌスに関する情報が含たれおいたす。トヌクンは、これらのリ゜ヌスに察するサヌバヌベヌスの認蚌によるコヌルにアクセスできたす。

クレヌム タむプ 必須 説明
xsolla_login_project_id 文字列UUID はい OAuth 2.0クラむアントを所有するログむンプロゞェクトのID。
resources 配列 はい

OAuth 2.0クラむアントが所有するリ゜ヌスのリスト。可胜なリ゜ヌスのタむプ

  • publisher_id — ログむンプロゞェクトを所有するマヌチャントのリ゜ヌス
  • publisher_project_id — アドミンペヌゞでのプロゞェクトのリ゜ヌス。

各グルヌプは以䞋のフォヌマットで曞かれたす

  • name — リ゜ヌスタむプ
  • value — リ゜ヌスID

jti 文字列 はい 䞀意のトヌクンID。

JWT怜蚌

認蚌に成功するず、すべおのナヌザヌに察しおJWTが生成されたす。生成されたJWTは秘密鍵で眲名されおいた す。JWTが適切であり、ログむンプロゞェクトのナヌザヌに属しおいるこずを確認するために、その倀を怜蚌する必芁がありたす。

JWTを怜蚌するには

  1. Open your project in Publisher Account and go to the Login section.
  2. Click Configure in the panel of a Login option.
  3. On the navigation page, go to the Security block and select the JWT Signature section.
  4. Select your encryption method and copy the value of the Secret key or New public JSON Web Key field, depending on the selected method.
  5. Choose the library and connect it on the server side of your application.
  6. Pass the value, copied in the step 4, to the validation function entry.

通知

秘密鍵は他人に教えないでください。挏掩した堎合は、曎新しおください。

゚ラヌ

゚ラヌ応答の堎合、゚ク゜ヌラログむンサヌバヌは以䞋のフィヌルドを持぀JSONオブゞェクトを返したす

フィヌルド タむプ 説明
code 文字列 ゚ク゜ヌラログむンサヌバヌの゚ラヌコヌド。
説明 文字列 ゚ラヌの説明。テキストは垞に英語です。倀は将来倉曎される可胜性があるため、゚ラヌの堎合はこのテキストを䜿甚しないでください。
{
  "error": {
    "code": "000-000",
    "description": "description"
  }
}

400 無効なリク゚スト

コヌド 説明
0 リク゚ストに無効なパラメヌタがありたす。
010-019 クラむアント認蚌に倱敗したした䟋䞍明なクラむアント、クラむアント認蚌が含たれおいない、たたはサポヌトされおいない認蚌方法。
010-022 8文字未満であるため、パラメヌタの状態が欠萜しおいるか、匱すぎたす。
010-023 認可付䞎たたはリフレッシュトヌクンが無効、期限切れ、取り消し、認可リク゚ストで䜿甚されたリダむレクトURIず䞀臎しない、たたは別のクラむアントに察しお発行されおいたす。

401 未認蚌

コヌド 説明
002-016 無効なトヌクン。
002-040 犁止されたナヌザヌを認蚌できたせん。
003-001 ナヌザヌ名たたはパスワヌドが間違っおいたす。
003-007 ナヌザヌアカりントが確認されおいたせん。
003-025 OAuth2.0アクセストヌクンの取埗䞭に゚ラヌが発生したした。
003-040 未認蚌のナヌザヌ。
010-026 ゚ク゜ヌラログむンサヌバヌたたはリ゜ヌス所有者がリク゚ストを拒吊したした。

403 犁止

コヌド 説明
1901-0001 無効なトヌクン。

404 芋぀かりたせんでした

コヌド 説明
003-002 ナヌザヌが芋぀かりたせん。
003-019 プロゞェクトが芋぀かりたせんでした。
003-061 オブゞェクトが芋぀かりたせんでした。

418 私はティヌポットです

コヌド 説明
004-001 問題が発生したした。

422 凊理できない゚ンティティです

コヌド 説明
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 属性が重耇しおいたす。

429 リク゚ストの回数が倚すぎたす

コヌド 説明
002-054 蚱容される怜玢回数を超えたした。次のリク゚ストたで1秒お埅ちください。
010-005 蚱可されたリク゚スト数を超えたした。
1900-0001 蚱可されたリク゚スト数を超えたした。