カスタムユーザーデータストレージ

カスタムユーザーデータストレージを使用する場合、エクソーラログインは仲介者として機能し、すべてのユーザー識別データはユーザー側で保管されます。エクソーラログインは、ウェブフックのヘッダーおよび本文に含まれるトークンで認証データを渡します。

お知らせ
ユーザーのメールアドレス、ソーシャルメディアデータ、ユーザー属性はエクソーラ側に保存されます。パスワードはエクソーラ側には保存されません。
カスタムストレージを使用する場合、次にアクセスできます:
お知らせ
統合をローカルでテストしている場合、エクソーラからのPOSTリクエストはhttp://localhost:3000/my-webhook-endpointのようなURLには届きません。Ngrokを使うと、外部からのアクセス用のトンネルを作ることができ、エクソーラからのリクエストをローカルで受け取ることができます。これについては、ngrokに関するドキュメントで詳しく読むことができます。

統合フロー

お知らせ
インタラクションシナリオは、選択する認証プロトコル(JWTまたはOAuth 2.0)によって異なります。
お知らせ
追加のユーザーデータを含むJSONの最大長さは1000文字です。
以下のデータをユーザープロファイルプロパティに追加できます:

ユーザー属性オブジェクトの配列を渡すことによって、ユーザー属性を更新することもできます。これらのオブジェクトの構造については、以下で説明します。

ユーザー属性オブジェクトの構造:

パラメータ種類説明文
attr_type
string6341サービス属性に対するユーザーのアクセス レベルの定義:
  • client — ユーザーが編集可能な属性。このタイプの属性の値は、ユーザーによって入力されるか、クライアント側のゲーム内ロジックに従って指定されます。例:名前とキャラクターのステータス、ゲームの難易度など。
  • server — 読み出し専用の属性。このタイプの属性の値は、アプリケーションのサーバー側で入力および編集されます。定期的に変更する必要のないゲームキャラクターの統計情報やユーザーパラメータの設定に使用することをお勧めします。例えば、ボーナス、ゲームキャラクターのキーパラメータ、ユーザーカテゴリーなどを獲得するチャンスがあります。
key
stringユーザーの属性を識別するための属性名。ユーザーごとにユニークである必要があります。
最大長さ:256シンボル。数字、ラテン文字、ハイフン、アンダースコアを使用することができます。
permission
string or nullユーザーの属性へのアクセスのタイプは、メソッドによって返される属性のリストに影響します:
可能な値:publicprivate(デフォルト)。
read_only
string属性が変更から保護されているかどうか。デフォルトでは、falseと属性値の変更は許可されています。
value
stringユーザーの属性の値。
最大長さ:256シンボル。

ユーザー登録

お知らせ
インタラクションシナリオは、選択する認証プロトコル(JWTまたはOAuth 2.0)によって異なります。

ユーザー名とパスワード経由での認証

お知らせ
インタラクションシナリオは、選択する認証プロトコル(JWTまたはOAuth 2.0)によって異なります。

電話番号経由のパスワードレス認証

お知らせ
インタラクションシナリオは、選択する認証プロトコル(JWTまたはOAuth 2.0)によって異なります。

メール経由でパスワードレス認証

お知らせ
インタラクションシナリオは、選択する認証プロトコル(JWTまたはOAuth 2.0)によって異なります。

ソーシャルネットワーク経由の認証

お知らせ
インタラクションシナリオは、選択する認証プロトコル(JWTまたはOAuth 2.0)によって異なります。

ユーザーパスワードのリセット

  1. クライアントは、エクソーラログインサーバーにReset password POSTリクエストを送信します。リクエストには、以下の必須パラメータを含める必要があります:
    • projectIdクエリパラメータ — パブリッシャーアカウントのログインプロジェクトのID。
    • username本文パラメータ — ユーザー名。許可される長さ:3~255文字。
  2. エクソーラログインサーバーは、ユーザーにパスワードリセット確認メールを送信します。
  3. メール内のパスワードリセット確認後、ユーザーは新しいパスワードを入力できるページにリダイレクトされます。
  4. ユーザーは新しいパスワードを入力します。
  5. エクソーラログインサーバーは、パスワードリセットURLにウェブフックを送信します。
  6. パスワードリセットが失敗した場合、認証ウィジェットに表示するエラーメッセージを提供できます。これを行うには、ユーザー作成リクエストへのレスポンスで、以下の詳細情報を含むerrorオブジェクトを渡します。
    • codeパラメータには、エラーコード(例:011-002)を指定します。
    • descriptionパラメータには、エラーメッセージのテキストを入力します。

パスワードリセットURLウェブフックの例:

Copy
Full screen
Small screen

http

  • http
  • curl
 1POST https://your.hostname/your_reset_uri HTTP/1.1
 2Authorization: Bearer {JWT}
 3Content-Type: application/json
 4
 5{
 6  "username": "john@gmail.com",
 7  "fields": {
 8    "password": "NewPa$$word1"
 9  }
10}
1curl --request POST \
2  --url 'https://your.hostname/your_reset_uri' \
3  --header 'authorization: bearer_JWT' \
4  --header 'content-type: application/json' \
5  --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'

トークンのリフレッシュ

お知らせ
トークンのリフレッシュは、OAuth 2.0認証プロトコルを使用している場合にのみ利用可能です。
  1. アクセストークンの有効期限が切れると、クライアントはエクソーラログインサーバーのJWT生成するPOSTリクエストエンドポイントにリクエストを送信します。リクエスト本文には、以下のパラメータを含める必要があります:
    • grant_type — JWTグラントタイプで、refresh_tokenの値を渡します。
    • client_idOAuth 2.0クライアントID
    • refresh_token — ユーザー認証リクエストへの応答で受け取ったリフレッシュトークン。
  2. エクソーラログインサーバーは、ソーシャルネットワークから受け取ったユーザーデータを処理し、リフレッシュトークンURLにウェブフックを送信します。この応答は、インタラクションフローで記述されている形式である必要があります。応答には、ユーザー属性のリストや、必要なJSONオブジェクトを指定できます。あなたが応答で提供するJSONオブジェクトは、ユーザーのJWTのpartner_dataフィールドに記録されます。
お知らせ
JSONフィールドをエクソーラのユーザープロフィールプロパティにマッピングし、サーバー上のユーザーIDでアカウント連携を構成するには、以下の説明に従ってください。
ウェブフックの例:
Copy
Full screen
Small screen
1POST https://your.hostname/your_refrsh_token_uri HTTP/1.1
2Authorization: Bearer {JWT}
3Content-Type: application/json
4
5{}

ユーザー属性を含むウェブフックへの応答の例:

Copy
Full screen
Small screen
 1{
 2    "attributes": [
 3      {
 4        "attr_type": "server",
 5        "key": "company",
 6        "permission": "private",
 7        "value": "facebook-promo"
 8      },
 9      {
10        "attr_type": "server",
11        "key": "custom-id",
12        "permission": "private",
13        "value": 48582
14      }
15    ]
16}

JSONオブジェクトを使用したウェブフックへの応答の例:

Copy
Full screen
Small screen
 1{
 2  "user": {
 3    "player_id": "12345678",
 4    "email": "user@example.com"
 5  },
 6  "user_info": {
 7    "username": "gamer123",
 8    "user_first_name": "John",
 9    "user_last_name": "Doe",
10    "gender": "male",
11    "birthday": "1990-05-15",
12    "country": "US",
13    "language": "en"
14  },
15  "subscription_status": "active",
16  "loyalty_level": "gold"
17
18}
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。

続きを読む

最終更新日: 2025年8月29日

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

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!
フィードバックを送信できませんでした
後でもう一度お試しいただくか、doc_feedback@xsolla.comまでお問い合わせください。