ログイン / OAuth 2.0プロトコル
 ドキュメントに戻る

ログイン

  • 統合ガイド

  • ユーザーデータストレージ

  • セキュリティ

  • カスタマイゼーション

  • 通信サービスプロバイダー

  • 特徴

  • ハウツー

  • 拡張機能

  • リファレンス

  • OAuth 2.0プロトコル

    概要

    ログイン製品は、ユーザー登録と認証のためのOAuth 2.0標準プロトコルに対応しています。OAuth 2.0標準の認可プロトコルは、クライアントアプリケーションの開発容易性を重視し、ユーザーの参加なしにアクセストークンを更新することが可能です。OAuth 2.0プロトコルの詳細な情報は、その公式サイトで確認できます。ユーザーJWTはアクセストークンとして使用されます。

    OAuth2.0クライアントとエクソラログインサーバー間の相互作用を以下に示します:

    OAuth 2.0プロトコルをセットアップするには:

    1. ログイン製品を接続します。
    2. エクソラPlayFabまたはFirebaseストレージをセットアップします。
    3. OAuth2.0クライアントを接続します

    OAuth 2.0クライアントを接続する

    1. パブリッシャーアカウントでプロジェクトを開き、ログインセクションに移動します。
    2. ログインオプションのパネルにある構成するをクリックします。
    3. ナビゲーションページで、セキュリティブロックに移動し、OAuth 2.0セクションを選択します。

    1. Add OAuth 2.0クライアントを追加するをクリックします。

    1. モーダルウィンドウで、次のことを指定します:
      • クライアント名。
      • アカウントの確認、認証の成功、パスワードリセットの確認後にユーザーがリダイレクトされるURI(複数可)。
      • 認証タイプ:公開、機密、サーバー。

    お知らせ
    認証タイプ(クライアントタイプ)については、OAuth 2.0認証フレームワーク機密および公開アプリケーションを参照してください。サーバー認証と機密認証のタイプは、機密クライアントを使用しますが、アプリケーションへのアクセス権を付与する方法が異なります(詳しくはアプリケーショングラントのタイプをご覧ください。):
    • サーバー認証の場合:grant_type=client_credentials
    • 機密認証および公開認証の場合:grant_type=authorization_codeまたはgrant_type=refresh_token
    Login API経由の統合を使用する場合は、認証のタイプを選択するときに次の機能を考慮する必要があります:
    • 機密クライアントは、アクセストークンを取得または更新するためにJWTを生成するメソッドを呼び出す際に、クライアントID秘密鍵を使用することを要求します。
    • 公開クライアントでは、クライアントIDの使用のみが必要です。
    • ユーザー名とパスワードによるJWT認証メソッドコールは、公開認証でのみ利用可能です。

    1. 接続をクリックします。

    1. アプリケーションでOAuth 2.0認証をセットアップするために必要なクライアントIDと秘密鍵が生成されます。

    1. ダイアログウィンドウで、コピーボタンを使ってクライアントID秘密鍵をコピーしてください。

    OAuth 2.0クライアント設定を取得する

    OAuth 2.0クライアント接続時にクライアントIDと秘密鍵をコピーしなかった場合、このデータにアクセスするために以下の操作が必要です:

    1. パブリッシャーアカウントであなたのプロジェクトを開き、ログインセクションに移動します。
    2. ログインオプションのパネルにある構成するをクリックします。
    3. ナビゲーションページで、セキュリティブロックに移動し、OAuth 2.0セクションを選択します。
    4. 必要なOAuth2.0クライアントの行で:
      • クライアントIDフィールドの内容をコピーします。
      • クライアントキーをクリックして、秘密鍵をコピーします。

    クライアントIDと秘密鍵は、Login APIメソッドのclient_idclient_secretパラメータに対応しています。OAuth 2.0クライアントを使用する場合は、これらの値を使用してください。

    お知らせ
    OAuth 2.0認証をアプリケーションに実装する場合、クライアントライブラリのコードを使用することをお勧めします。これにより、あなたの情報とユーザーのデータを保護することができます。

    アプリケーション側での統合

    以下の統合オプションが利用できます:

    Login APIとログインウィジェットを使用する場合、scopeパラメータが使用されます。以下の値を取ります:

    • offlineはアクセストークンを更新します。登録または認証メソッドにscope=offlineを渡します。
    • emailはソーシャルネットワークを通じた認証の際に、ユーザーのメールアドレスをリクエストにします。ログイン製品をLogin APIで統合した場合、登録または認証メソッドにscope=emailを渡します。ログインウィジェットで統合する場合、メールアドレスと電話番号の収集に関する説明を使用して、ユーザーのメールアドレスの収集方法を設定します。

    ログインウィジェット経由の統合

    ログインウィジェット経由の統合を構成した場合、client_idresponse_typestateまたはredirect_uriパラメータを初期化コードに追加します。redirect_uriパラメータで、パブリッシャーアカウントでOAuth2.0クライアントに接続するときに設定された値を指定する必要があります。scopeパラメータを追加することもできます。

    リクエストの例:

    Copy
    Full screen
    Small screen
    <script>
    const xl = new XsollaLogin.Widget({
      projectId: 'LOGIN_PROJECT_ID',
      preferredLocale: 'en_US',
      clientId: 'CLIENT_ID',
      responseType: 'code',
      state: 'CUSTOM_STATE',
      redirectUri: 'REDIRECT_URI',
      scope: 'SCOPE'
    });
    </script>

    Login API経由の統合

    OAuth 2.0プロトコルに対応したAPIメソッドを使用して、ユーザーの登録と認証を行います。すでにJWT規格のメソッドを統合している場合は、OAuth 2.0メソッドコールに置き換えてください。

    認証メソッドを呼び出す際に、受信したcodeパラメータをアクセストークンと交換します。

    エクソラSDK経由の統合

    エクソラSDKは、OAuth 2.0プロトコルベースの認証に対応しています。OAuth 2.0クライアントの設定は、ゲームエンジンまたはプラットフォームを選択して指示に従ってください:

    アクセストークンを取得する

    ユーザーアクセストークンを取得するには、以下のパラメータ値でJWTを生成するメソッドを使用します:

    APIメソッドのレスポンスとして、以下のトークンが返されます:

    • access_token — アクセストークン。デフォルトの有効期限は1時間です。
    • refresh_token — リフレッシュトークンです。有効期限は限定されません。

    リクエストの例:

    Copy
    Full screen
    Small screen
    http
    • http
    • curl
    POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
    curl --request POST \
      --url https://login.xsolla.com/api/oauth2/token \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data grant_type=authorization_code \
      --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
      --data client_id=11 \
      --data redirect_uri=https://my-website.com/callback \
      --data code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik

    アクセストークンをリフレッシュする

    アクセストークンの有効期限が切れたら、JWTを生成するメソッドを使用して、grant_typeパラメータをrefresh_tokenに等しくし、最後に受け取ったリフレッシュトークンの値(refresh_token)を使用してリフレッシュします。

    APIメソッドのレスポンスとして、access_tokenアクセストークンとrefresh_tokenリフレッシュトークンの新しいペアが返され、その後再度リフレッシュすることができます。

    リクエストの例:

    Copy
    Full screen
    Small screen
    http
    • http
    • curl
    POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
    curl --request POST \
      --url https://login.xsolla.com/api/oauth2/token \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data grant_type=refresh_token \
      --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
      --data client_id=11 \
      --data redirect_uri=https://my-website.com/callback \
      --data refresh_token=111dfgdfgdf

    お知らせ
    ログイン製品は、デフォルトで最大5つの同時ユーザーセッションをサポートします。新しいユーザーが認証されるたびに、そのユーザーが過去5回のトークンペアより前に受け取ったaccess_tokenrefresh_tokenのトークンペアは無効となります。同時接続ユーザーセッション数の制限を変更するには、アカウントマネージャーまでお問い合わせください。
    この記事は役に立ちましたか?
    ありがとうございます!
    改善できることはありますか? メッセージ
    申し訳ありません
    この記事が参考にならなかった理由を説明してください。 メッセージ
    ご意見ありがとうございました!
    あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
    このページを評価する
    このページを評価する
    改善できることはありますか?

    答えたくない

    ご意見ありがとうございました!
    最終更新日: 2022年8月8日

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

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