ゲーム内のユーザー認証

どのように動作するか

ランチャーは、デスクトップアプリケーション経由で認証したユーザーのデータを、JWT形式の–xsolla-login-tokenパラメーターでゲームに送信します。このパラメータを使用して、ゲーム内ユーザーの自動認証を設定できます。

主なJWTクレーム

トークンには、認証またはメールアドレス確認後の主な要求が含まれます。これらの要求の有無は、ユーザーデータベースや認証コールに依存しません。

クレーム                                                  種類必須説明
expUnix Timestampトークンの有効期限を設定する日時。デフォルトの有効期限は24時間です。ログインプロジェクトごとに有効期限を変更することができます。
issstringトークンに署名したサービス:https://login.xsolla.com
iatUnix Timestampトークンを発行した日時。
substring (UUID)エクソーラログインサーバー側に書き込まれたユーザーID。
groupsarrayユーザーが所属するグループのリスト。すべてのグループは次の形式で記述されます:
  • id — グループID;
  • name — グループ名;
  • is_default — グループがデフォルトかどうか(trueまたはfalse)を示します。
デフォルトグループは1つしかありません。このグループの初期状態では、異なるグループに振り分けられる前のすべてのユーザーが含まれます。
xsolla_login_project_idstring (UUID)ログインプロジェクトID。
usernamestringユーザー名。
publisher_idintegerログインプロジェクトを所有するマーチャントのID。
emailstringユーザーのメールアドレス。
payloadstring認証時にペイロードパラメータで渡される追加情報。
promo_email_agreementbooleanニュースレターの受信に同意します。次のいずれかの値を持つ可能性があります:
  • ユーザーがニュースレターの受信に同意した場合はtrueです。
  • その他の場合はfalseです。
デフォルトではtrueです。
ログインウィジェットの登録フォームに機能を追加するには:
  • ウィジェット2.0を使用している場合はカスタマーサクセスマネージャーに問い合わせるか、csm@xsolla.comに電子メールを送信してください。
  • 以前のバージョンのウィジェットを使用している場合は、promo_email_agreementの値を持つfieldsパラメータを初期化コードに追加します。
connection_informationstringユーザーが生年月日を確認したかどうかを表示します。確認はoknameサービスを通じて行われます。

ソーシャル認証

ソーシャルネットワーク経由の認証後、トークンに含まれる要求。これらの要求の存在は、ユーザーデータベースに依存しません。

クレーム                                                  種類必須説明
providerstring認証に使用されるソーシャルネットワークの名前。可能な値:amazonapplebaidubattlenetdiscordfacebookgithubgooglekakaolinkedinmailrumicrosoftmsnnaverokpaypalpsnqqredditsteamtwitchtwittervimeovkwechatweiboyahooyandexyoutubexbox
idstringソーシャルネットワークのユーザーID。
is_cross_authbooleanサイレント認証のリクエストが進行中であることを示します。
social_access_tokenstring認証に使用するソーシャルネットワークアカウントのaccess_tokenパラメータ。この機能をセットアップするには、カスタマーサクセスマネージャーに問い合わせるか、csm@xsolla.comまで電子メールを送信してください
picturestring (URL)ソーシャルネットワークにおけるユーザープロフィール画像へのリンク。
birthdaydate (RFC 3339)ソーシャルネットワークにおけるユーザーの誕生日。
genderstringソーシャルネットワークにおけるユーザー性別。
namestringソーシャルネットワークにおけるユーザーニックネーム。

ユーザーフロー

  1. ユーザーがランチャーにログインします。
  2. ランチャーは、エクソーラログインサーバーからユーザー情報を含む認証トークンを受け取ります。
  3. ユーザーはランチャーからゲームを開始します。
  4. ゲームを起動する際、ランチャーはゲームクライアントに以下の引数を渡します:
    • --xsolla-login-token <token> — エクソーラログインサーバーから取得した認証トークン。
    • --xsolla-locale <locale> — UI言語。

例:

Copy
Full screen
Small screen
    game.exe --xsolla-login-token eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJlbWFpbCI6InAudHVnb2x1a292QHhzb2xsYS5jb20iLCJleHAiOjE1ODU1MDYxMTMsImdyb3VwcyI6W10sImlhdCI6MTU4NDY0MjExMywiaXNzIjoiaHR0cHM6Ly9sb2dpbi54c29sbGEuY29tIiwicGFydG5lcl9kYXRhIjp7ImFkbWluIjp0cnVlfSwicGF5bG9hZCI6IiIsInByb21vX2VtYWlsX2FncmVlbWVudCI6dHJ1ZSwicHJvdmlkZXIiOiJ4c29sbGEiLCJyZWRpcmVjdF91cmwiOiIiLCJzdWIiOiIyNmYxNzI5Ni00Nzk5LTExZTgtOTBkMC00MjAxMGE4YTAwMTkiLCJ0eXBlIjoic29jaWFsIiwidXNlcm5hbWUiOiJzb21lX3VzZXJAbWFpbC5jb20iLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6Ikk2QTJrTEZPQ2JkcnUzamIxMjNyT3JmWnNkTnFpdVcxMjNpWTdKcW85OHI5b0hPbyIsInhzb2xsYV9sb2dpbl9wcm9qZWN0X2lkIjoiNDBkYjJlYTQtNWQ0Mi0xMWU2LWEzZmYtMDA1NDU2YTBlMTRhIn0.ZsTNiwY2iPp7HKqHs5g6JXzL2kv_RVuMNBlF-Tn2ccE --xsolla-locale en
    
    1. ゲームクライアントは、取得したユーザートークンをゲームサーバに送信し、以下のいずれかの場所でユーザーデータを取得します:

    入手方法

    1. 以下の場所でユーザーデータの取得を実装します:
    2. ゲームがユーザーを自動的に認証するためのパラメータ処理を設定します。
    3. ゲームクライアントの引数--xsolla-locale <locale> で得られた言語に基づいてインターフェイス言語の選択を実装する。
    4. 新規ユーザーの追跡とゲームサーバー上でのアカウントの作成を実装します。

    ゲームサーバー上でJWTをデコードする

    1. パブリッシャーアカウントであなたのプロジェクトを開き、「ログイン」セクションに移動します。
    2. ログインプロジェクトのペインで「構成する」をクリックします。
    3. セキュリティ」ブロックに移動し、「JWT署名」セクションを選択します。
    4. 秘密キー」フィールドの値をコピーします。
    5. ライブラリを選択し、アプリケーションのサーバー側に接続します。
    6. ステップ4でコピーした値をデコード関数のエントリに渡す。
    注意
    秘密鍵は他人に教えないでください。漏洩した場合は、更新してください。

    ログインAPIを使用したユーザーデータの取得

    ユーザー詳細を取得するログインAPIメソッドを呼び出してユーザーデータを取得します。

    ユーザー登録

    新しいユーザーの登録を追跡するには:

    1. パブリッシャーアカウントであなたのプロジェクトを開き、「ログイン」セクションに移動します。
    2. ログインプロジェクトのペインで「構成する」をクリックします。
    3. 上部の設定ブロックで、「コールバックURL」をクリックします。
    4. コールバックURL」フィールドには、登録後にユーザーをリダイレクトするURLアドレスを入力します。
    5. ゲーム内で新しいアカウントの作成を構成します。登録後、ユーザーは「コールバックURL」フィールドでパラメータis_new=1を使用して指定されたURLにリダイレクトされます。
    6. アカウントを入力するための情報を取得するには、ログインAPIメソッドを使用します。

    例:

    Copy
    Full screen
    Small screen
      https://<callbackUrl>?is_new=1&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWR
      

      UI言語

      ExampleValueMeaning
      –xsolla-locale en“en”
      “ru”
      “cn”
      “tw”
      “fr”
      “de”
      “it”
      “pt”
      “es”
      “pl”
      “cs”
      “ko”
      “ar”
      “bg”
      “he”
      “ja”
      “tr”
      “th”
      “vi”
      “ro”
      “English”
      “Русский”
      “简体中文”
      “中国传统的”
      “Français”
      “Deutsch”
      “Italiano”
      “Português”
      “Español”
      “Polski”
      “Čeština”
      “한국어”
      “العربية”
      “Български”
      “עברית”
      “日本語”
      “Türkçe”
      “ไทย”
      “Tiếng Việt”
      “Română”
      この記事は役に立ちましたか?
      ありがとうございます!
      改善できることはありますか? メッセージ
      申し訳ありません
      この記事が参考にならなかった理由を説明してください。 メッセージ
      ご意見ありがとうございました!
      あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
      最終更新日: 2024年9月23日

      誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

      問題を報告する
      当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
      フォローアップ用のメールをご提供してください
      ご意見ありがとうございました!