ログイン / カスタムストレージ
  ドキュメントに戻る

ログイン

カスタムストレージ

カスタムストレージを使用する場合、次にアクセスできます:

統合フロー

ログインウィジェットまたはログインAPIコールを使用するアプリケーションをクライアントとして使用できます。クライアントとエクソーラログインサーバー間の対話フローは次のとおり:

  1. クライアントはエクソーラログインサーバーにリクエストを送信します。リクエストの形式は、JWTおよびPasswordエンドポイントで説明されています。
  2. エクソーラログインサーバーがサーバーにリクエストを送信します。指示に従ってリクエストを検証します。
  3. エクソーラログインサーバーはサーバーからの応答を処理し、結果をクライアントに返します。
  4. クライアントは応答を処理します。

サーバーのリクエストに対する応答として、ユーザーに関する情報を構造体の形で取得することができます:

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

ユーザー登録

  1. クライアントは、Register new userリクエストをエクソーラログインサーバーに送信します。
  2. エクソーラログインサーバーは、「新しいユーザーURL」にリクエストを送信します。応答は、この説明で説明されている形式でなければなりません。応答では、ユーザー属性のリストを指定できます。

新しいユーザーURLの応答例:

Copy
Full screen
Small screen
http
  • http
  • curl

POST https://your.hostname/your_registration_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email": "john@gmail.com",
  "password": "123456"
}
curl --request POST \
  --url 'https://your.hostname/your_registration_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"john@gmail.com","password":"123456"}'

応答の例:

Copy
Full screen
Small screen

    {
        "attributes": [
          {
            "attr_type": "server",
            "key": "company",
            "permission": "private",
            "value": "facebook-promo"
          },
          {
            "attr_type": "server",
            "key": "custom-id",
            "permission": "private",
            "value": 48582
          }
        ]
    }

    1. emailにフラグが付けられ、未確認の時、ユーザーデータはエクソーラデータベースに書き込まれます。ユーザーはアカウント確認メールを受け取ります。
    2. ログインウィジェットを統合している場合、ユーザーは次のメッセージとともにページにリダイレクトされます:{email}に送信した指示に従って、アカウントを確認してください

    ユーザー名とパスワードによる認証

    1. 御社のクライアントはAuth by username and password要求をエクソーラログインサーバーに送信します。
    2. エクソーラログインサーバーは要求をユーザー確認URLに送ります。応答はこの指示で説明されている形式でなければなりません。

    新しいユーザーURLの応答例:

    Copy
    Full screen
    Small screen
    http
    • http
    • curl

    POST https://your.hostname/your_authentication_uri HTTP/1.1
    Authorization: Bearer {JWT}
    Content-Type: application/json
    
    {
      "email": "john@gmail.com",
      "password": "123456"
    }
    curl --request POST \
      --url 'https://your.hostname/your_authentication_uri' \
      --header 'authorization: bearer_JWT' \
      --header 'content-type: application/json' \
      --data '{"email":"john@gmail.com","password":"123456"}'

    応答の例:

    Copy
    Full screen
    Small screen

      {
          "attributes": [
            {
              "attr_type": "server",
              "key": "company",
              "permission": "private",
              "value": "facebook-promo"
            },
            {
              "attr_type": "server",
              "key": "custom-id",
              "permission": "private",
              "value": 48582
            }
          ]
      }

      1. エクソーラログインサーバーはユーザーJWTを生成します。
      2. ユーザーはtokenクエリパラメータのあるlogin_urlにリダイレクトされます。tokenパラメータにはユーザーJWTが含まれます。

      お知らせ
      エクソーラデータベースにユーザーデータが書き込まれていない場合は、新しいユーザーが作成されます。

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

      1. クライアントは認証フォームを開き、ユーザーが電話番号を入力できるようにします。
      2. ユーザーは電話番号を入力します。
      3. クライアントはエクソーラログインサーバーにStart auth by phone numberリクエストを送信します。
      4. クライアントは、ユーザーが検証コードを入力できるようにフィールドを表示します。
      5. ユーザーは受信した検証コードを入力します。
      6. クライアントはエクソーラログインにComplete auth by phone numberリクエストを送信します。
      7. それが最初のユーザ認証である場合、エクソーラログインサーバは、電話URL付きのパスワードレスログインにリクエストを送信します。応答は、この説明に記載されている形式でなければなりません。

      新しいユーザーURLの応答例:

      Copy
      Full screen
      Small screen
      http
      • http
      • curl

      POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
      Authorization: Bearer {JWT}
      Content-Type: application/json
      
      {
        "login": "+12025550140",
        "type": "phone"
      }
      curl --request POST \
        --url 'https://your.hostname/your_phone_authentication_uri' \
        --header 'authorization: bearer_JWT' \
        --header 'content-type: application/json' \
        --data '{"login":"+12025550140","type":"phone"}'

      応答の例:

      Copy
      Full screen
      Small screen

        {
            "attributes": [
              {
                "attr_type": "server",
                "key": "company",
                "permission": "private",
                "value": "facebook-promo"
              },
              {
                "attr_type": "server",
                "key": "custom-id",
                "permission": "private",
                "value": 48582
              }
            ]
        }

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

        ソーシャルネットワーク経由の認証時にユーザーデータを取得するには、アドミンページのログインプロジェクトの設定(セクションユーザーデータベース > ストレージ > カスタムストレージ)で、ソーシャルログインURLを指定します。ソーシャルネットワークから受信したデータを含むリクエストがこのURLに送信されます。

        認証フロー:

        1. クライアントがAuth via social networkリクエストをエクソーラログインサーバーに送信します。
        2. ユーザーはソーシャルネットワークにログインします。
        3. エクソーラログインサーバーは、ソーシャルネットワークから受信したユーザーデータを処理し、ソーシャルログインURLにリクエストを送信します。応答は、指示で説明されている形式でなければなりません。

        リクエストはAuthorization: Bearer <JWT>ヘッダーで一時トークンにデータが含まれています。リクエストで渡されたユーザーJWTには、次のデータが含まれています:

        クレーム種類説明
        expUnix TimestampJWTの有効期限の日時。JWTの存続時間は7分です。 必須。
        iatUnix TimestampJWTが発行された日時。 必須。
        issstringJWTに署名したサービスhttps://login.xsolla.com必須。
        request_typestring定数:gateway_request必須。
        xsolla_login_project_idstring(UUID)アドミンページの御社のログインプロジェクトID。 必須。
        emailstringユーザーのメールアドレス。
        substring(UUID)エクソーラログインサーバー側に書き込まれたユーザーID。 必須。
        usernamestringユーザー名。
        providerstring認証に使用されるソーシャルネットワークの名前。 必須。
        idstringソーシャルネットワークのユーザーID。 必須。

        トークンペイロードの例:

        Copy
        Full screen
        Small screen

        {
          "exp": 1573635020,
          "iat": 1573634600,
          "iss": "https://login.xsolla.com",
          "request_type": "gateway_request",
          "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
          "sub": "00000000-0000-0000-0000-000000000000",
          "email": "example@test.com",
          "username": "Smith707",
          "provider": "google",
          "id": "123",
        }

        新しいユーザーURLの応答例:

        Copy
        Full screen
        Small screen
        http
        • http
        • curl

        POST https://your.hostname/your_social_authentication_uri HTTP/1.1
        Authorization: Bearer {JWT}
        Content-Type: application/json
        
        {}
        curl --request POST \
          --url 'https://your.hostname/your_social_authentication_uri' \
          --header 'authorization: bearer_JWT' \
          --header 'content-type: application/json'

        応答の例:

        Copy
        Full screen
        Small screen

          {
              "attributes": [
                {
                  "attr_type": "server",
                  "key": "company",
                  "permission": "private",
                  "value": "facebook-promo"
                },
                {
                  "attr_type": "server",
                  "key": "custom-id",
                  "permission": "private",
                  "value": 48582
                }
              ]
          }

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

          1. クライアントは、Reset passwordリクエストをエクソーラログインサーバーに送信します。
          2. エクソーラログインサーバーは、ユーザーにパスワードリセットの確認メールを送信します。
          3. 電子メールでパスワードのリセットを確認した後、ユーザーは新しいパスワードを入力できるページにリダイレクトされます。
          4. ユーザーは新しいパスワードを入力します。
          5. エクソーラログインサーバーは、パスワードリセットURLにリクエストを送信します。応答は、この指示で説明されている形式でなければなりません。

          新しいユーザーURLの応答例:

          Copy
          Full screen
          Small screen
          http
          • http
          • curl

          POST https://your.hostname/your_reset_uri HTTP/1.1
          Authorization: Bearer {JWT}
          Content-Type: application/json
          
          {
            "username": "john@gmail.com",
            "fields": {
              "password": "NewPa$$word1"
            }
          }
          curl --request POST \
            --url 'https://your.hostname/your_reset_uri' \
            --header 'authorization: bearer_JWT' \
            --header 'content-type: application/json' \
            --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'

          この記事は役に立ちましたか?
          ありがとうございます!
          改善できることはありますか? メッセージ
          申し訳ありません
          この記事が参考にならなかった理由を説明してください。 メッセージ
          ご意見ありがとうございました!
          あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
          このページを評価する
          このページを評価する
          改善できることはありますか?

          答えたくない

          ご意見ありがとうございました!

          続きを読む

          最終更新日: 2023年10月10日

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

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