OAuth 2.0プロトコル

概要

エクソラログインは、ユーザー登録と認証のためのOAuth 2.0標準プロトコルをサポートしています。OAuth 2.0は、クライアントの役割をリソースの所有者から分離します。リソースは所有者が管理し、サーバーがホストしています。保護されたリソースにアクセスするために、クライアントはアクセストークンを取得します — アクセス属性を定義する文字列で、リソースの所有者の資格情報は使用しません。リソースの所有者の承認を得て、サーバーは第三者のクライアントにアクセストークンを与えて使用します。OAuth 2.0プロトコルの詳細については、公式Webサイトを参照してください。ユーザーJWTaccess_tokenです。

クライアントとエクソラログインサーバー間の相互作用の流れは以下の通り:

OAuth 2.0プロトコルを設定するには:

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

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

  1. パブリッシャーアカウントに移動して、あなたのログインプロジェクト>一般設定>承認>OAuth 2.0認証を開きます。
  2. 接続するをクリックします。
  3. モデルウィンドウで以下のことを指定します:
    1. クライアント名。
    2. OAuth 2.0リダイレクトURI。Login APIコールのパラメータredirect_uri
    3. 認証タイプ:公開または機密。

Note
クライアントの種類の詳細については、The OAuth 2.0 Authorization Frameworkを参照してください。Login APIを使用する場合:
  • 機密クライアントは、アクセストークンを取得して更新するためにGenerate JWTコールを呼び出す際に、クライアントIDシークレットキーの使用を要求します。
  • パブリッククライアントはクライアントIDの使用のみが必要です。
  • JWT auth by username and passwordコールは、パブリッククライアントでのみ利用可能です。

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

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

クライアントID秘密鍵を取得するには:

  1. パブリッシャーアカウントに移動して、あなたのログインプロジェクト>一般設定>認証OAuth 2.0認証を開きます。
  2. クライアントブロックで、接続/編集するをクリックします。

OAuth 2.0クライアントを接続すると、これらの設定が書かれたウィンドウが自動的に開きます。クライアントID秘密鍵Login APIコールのclient_id及びclient_secretパラメータと一致します。OAuth 2.0クライアントを使用する場合は、これらの設定を使用します。

Note
アプリケーション側でOAuth 2.0を実装するには、クライアントライブラリが提供するデバッグされたコードを使用することをお勧めします。そうすることで、自分自身とユーザを守ることができます。

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

これらを統合するには、以下のような方法が考えられます:

Login APIを使用する場合は、scopeパラメータも使用できます。可能なパラメーター値:

  • アクセストークンを更新するためのoffline。登録または認証方法にscope=offlineを渡す必要があります。
  • ソーシャルネットワークを介してユーザを認証する際のユーザ追加メールリクエスト用のemail。以前のバージョンのログインウィジェットを介して製品ログインを統合している場合は、この値を設定します。ソーシャル認証中でメールを収集する説明を参照してください。

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

ウィジェットを介してログインを統合する場合:

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

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>

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

Copy
Full screen
Small screen
<script type="text/javascript">
XL.init({
  projectId: 'LOGIN_PROJECT_ID',
  locale: 'en_US',
  redirectUri: 'REDIRECT_URI',
  clientId: 'CLIENT_ID',
  state: 'CUSTOM_STATE',
  scope: 'SCOPE'
});
</script>

Login API経由の統合

ユーザー登録と認証には、OAuth 2.0プロトコルのAPIリクエストを使用します。すでにJWT標準のリクエストを統合している場合は、OAuth 2.0リクエストを呼び出すことで置き換えます。

API認証リクエストを呼び出す際に、codeパラメータをアクセストークンと交換します。

エクソラSDK経由の統合

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

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

Generate JWTコールをgrant_type=authorization_codeパラメータと使用してアクセストークンを取得します。トークン取得のために必要なcodeパラメータはユーザー認証または登録後にredirect_uriにパスされます。

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

アクセストークンを更新する

エクソラログインサーバーはアクセストークンを生成し、認証に成功したユーザーごとに新しいセッションを作成します。デフォルトでは、トークンの有効期限は1時間です。

トークンを更新するには、Generate JWTコールを使用します:

  • 最初のコールには、grant_type=authorization_codeパラメータと、ユーザ認証後に受信したcodeパラメータを使用します。
  • トークンの有効期限が切れた後の後続のコールには、grant_type=refresh_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

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

答えたくない

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

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

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