OAuth 2.0: 接続

仕組み

エクソラログインはOAuth 2.0プロトコルに基づくユーザー認証をサポートします。OAuth 2.0プロトコルに関する詳細情報は公式ウェブサイトで利用できます。

OAuth 2.0プロトコルのためのエクソラログインメソッドの形式はここで説明されています。

使用に適した方

エクソラログインを統合し、エクソラまたはPlayFabデータベースを使用するパートナー。

使用するには

  1. OAuth 2.0プロトコルをアカウントマネージャーに設定するためのパラメータを送信します。
  2. プロジェクト統合を更新します。

OAuth 2.0のための設定を送信

以下のパラメータをアカウントマネージャーに送信します:

パラメータ説明
scopeユーザーデータへのクライアントのアクセスを制限。 可能な値:
  • Generate User JWTメソッドをgrant_type=refresh_tokenで呼び出す時、ユーザーJWTを更新する場合にはofflinescope=offlineを登録または認証メソッドにパスする必要があります。
  • ソーシャルネットワーク経由でユーザーを認証する場合の追加のユーザーEメールにはemailレシピ参照)。
redirect_uriリクエストに正常な応答が返された場合に、ユーザーをリダイレクトするためのURL。ユーザーデータ(codestate)を確認するパラメータはリダイレクト中にURLにパスされます。

プロジェクトのプロトコルを接続後、アカウントマネージャーから以下に説明されているデータが送信されます。APIメソッドが呼び出された場合に、値は対応するパラメータにパスされます:

  • client_id — OAuth 2.0クライアントのID。
  • client_secret — OAuth 2.0クライアントの秘密鍵。

プロジェクト統合の更新

プロジェクトの設定を更新するフローはログインの統合タイプにより異なります:

ウィジェット経由で統合を更新

  1. ウィジェットを介してログインを統合する場合:
    • ウィジェット2.0の場合:client_idresponse_typestateまたはredirect_uri初期化コードに追加します。また、あなたはscopeパラメータを追加できます。https://example.comのように、redirect_uriパラメータにあるHTTP / HTTPSスキームを指定する必要があります。

例:

<script>
const xl = new XsollaLogin.Widget({
  projectId: '[Login ID]',
  preferredLocale: 'en_US',
  clientId: '[client_id]',
  responseType: 'code',
  state: '[custom_state]',
  redirectUri: '[redirect_uri]'
});
</script>

    • 以前のバージョンのウィジェットの場合:redirect_uriclient_idパラメータを初期化コードに追加します。redirect_uriパラメータにあるHTTP / HTTPSスキームを指定する必要があります。

例:

<script type="text/javascript">
XL.init({
  projectId: '[Login ID]',
  callbackUrl: '[callbackUrl]',
  locale: 'en_US',
  redirectUri: '[redirect_uri]',
  clientId: '[client_id]'
});
</script>

  1. JWTを取得するためのユーザー認証に成功した後で、Generate User JWTメソッドを使用します。JWTを取得するために必要なcodeパラメータはユーザー認証または登録後にredirect_uriにパスされます。

    例:

    POST https://login.xsolla.com/api/oauth2/token
    
    Headers:
    Content-Type: application/x-www-form-urlencoded
    
    Body:
    client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback

    エクソラログインAPIを経由して統合を更新

    以下にリストアップされているOAuth 2.0プロトコルのためのAPIメソッドを使用してユーザー認証を実行します。JWTプロトコルのためのメソッドを既に統合した場合には、OAuth 2.0メソッドを呼び出して、置き換えます。

    登録

    Registerメソッドを使用して、新規ユーザーを追加します。

    例:

    POST https://login.xsolla.com/api/oauth2/user?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback
    
    Headers:
      Content-Type: application/json
    
    Body:
    {
      "username": "John",
      "password": "password123",
      "email": "john@gmail.com"
    }

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

    Auth by Username and Passwordメソッドを使用してcodeパラメータを取得します。

    例:

    POST https://login.xsolla.com/api/oauth2/login?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback
    
    Headers:
      Content-Type: application/json
    
    Body:
    {
      "username": "John",
      "password": "password123"
    }

    JWT取得メソッドを使って、JWTのためのcodeを交換する。

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

    Auth via Social Networkメソッドを使用してcodeパラメータを取得します。

    例:

    GET https://login.xsolla.com/api/oauth2/social/google/login_redirect?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

    JWT取得メソッドを使って、JWTのためのcodeを交換する。

    JWTの取得

    Generate User JWTメソッドをgrant_type=authorization_codeパラメータと使用してユーザーJWTを取得します。JWT取得のために必要なcodeパラメータはユーザー認証または登録後にredirect_uriにパスされます。

    例:

    POST https://login.xsolla.com/api/oauth2/token
    
    Headers:
    Content-Type: application/x-www-form-urlencoded
    
    Body:
    client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback