ログイン / 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
ログイン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と秘密鍵は、ログインAPIメソッドのclient_idclient_secretパラメータに対応しています。OAuth 2.0クライアントを使用する場合は、これらの値を使用してください。

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

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

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

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

  • offlineはアクセストークンを更新します。登録または認証メソッドにscope=offlineを渡します。
  • emailはソーシャルネットワークを通じた認証の際に、ユーザーのメールアドレスをリクエストにします。ログイン製品をログイン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>

ログイン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のトークンペアは無効となります。同時接続ユーザーセッション数の制限を変更するには、カスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comに電子メールを送信してください。
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
最終更新日: 2024年9月18日

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

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