PlayFab

仕組み

PlayFabは、次のユーザーデータのストレージとして使用できます:

  • ユーザー名
  • ユーザーのメールアドレス
  • ユーザーのパスワード
  • フォームが設定されている場合の拡張登録フォームのフィールド
このユーザーデータはエクソラ側にも保存されますが、パスワードはPlayFabによってのみ検証されます。

PlayFabストレージを使用する場合、次の機能にアクセスできます:

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

  1. クライアントはエクソラログインサーバーにリクエストを送信します。 リクエストの形式は、JWTOAuth 2.0、およびGeneralメソッドグループで説明されています。
  2. エクソラログインサーバーは、PlayFabにリクエストを送信します。
  3. エクソラログインサーバーはPlayFabからの応答を処理し、結果をクライアントに返します。
  4. クライアントは応答を処理します。

PlayFabでのユーザー登録

ユーザー登録は以下のフローで行います。 ユーザー登録を完了するためのユーザーアカウント確認メールの送信を設定できます。

ユーザー登録フロー

  1. クライアントは、Registerリクエストをエクソラログインサーバーに送信します。
  2. エクソラログインサーバーは登録リクエストを送信します。
  3. ユーザーデータはエクソラデータベースに書き込まれます。
  4. エクソラログインサーバーは、PlayFabのデータを変更するリクエストを送信します。
  5. アカウント確認を設定した場合:
    1. APIメソッドを使用してソリューションを統合すると、登録が完了します。
    2. ログインウィジェットを使用してソリューションを統合すると、ユーザーはページにリダイレクトされ、次のメッセージが表示されます:アカウントの確認メールがに{email address}送信されます
    アカウント確認を設定しない場合、ユーザーは登録後に自動的にログインします。

PlayFabでのユーザーアカウントの確認

アカウント確認メールの送信を設定するには、次の手順を実行します:

  1. 指示に従って、PlayFabでプロジェクトを設定します。
  2. RequirementsモジュールでのCreate an email templateCreate a rule to send an email when a contact email is updatedステップを完了することを確認してください。
  3. アカウントマネージャーにお問い合わせください。

Note: PlayFabを使用するプロジェクトにサインアップしたユーザーは、メールアドレスを確認せずにログインできます。

ユーザーのメールアドレスとパスワードによる認証

ユーザーのメールアドレスとパスワードによる認証には、JWTベースの認証とOAuth 2.0プロトコルベースの認証の二つのタイプがあります。

認証(JWT)

  1. クライアントはエクソラログインサーバーにAuth by Username and Passwordリクエストを送信します。
  2. エクソラログインサーバーは、PlayFabに認証リクエストを送信します。
  3. 以下の場合には、エクソラログインサーバーは、ユーザーJWTを生成します:
    • PlayFabリクエストへの応答からのPlayFabId値は、external_account_idクレームに書き込まれます。
    • PlayFabリクエストへの応答からのSessionTicketは、session_ticketクレームに書き込まれます。
  4. ユーザーは、クエリパラメータtokenを使用してlogin_urlにリダイレクトされます。ユーザーJWTがtokenパラメーターに書き込まれます。

認証(OAuth 2.0)

  1. クライアントは、Auth by Username and Passwordリクエストを、redirect_uriパラメータとともにエクソラログインサーバーに送信します。
  2. エクソラログインサーバーは、PlayFabに認証リクエストを送信します。
  3. エクソラログインサーバーは、クエリパラメーター内のcodeと、redirect_uriを渡したlogin_urlを返します。
  4. ユーザーは、クエリパラメータcodeを使用してredirect_uriにリダイレクトされます。
  5. クライアントは、Generate User JWTリクエストをエクソラログインサーバーに送信して、受信したcodeをユーザーJWTと交換します。
  6. 以下の場合には、エクソラログインサーバーは、ユーザーJWTを生成します:
    • PlayFabリクエストへの応答からのPlayFabId値は、external_account_idクレームに書き込まれます。
    • Auth by Username and Passwordリクエストにscope = playfabを渡した場合、PlayFabリクエストへの応答からのSessionTicketは、session_ticketクレームに書き込まれます。

エクソラストレージにユーザーデータがない場合:

  1. ユーザーデータがそこに書き込まれます。
  2. エクソラログインサーバーは、PlayFabのデータを変更するリクエストを送信します。

Twitch経由の認証

PlayFabでソーシャルネットワークをセットアップして、Twitchによるユーザーを認証する必要があります。Twitchによる認証には、JWTベースの認証とOAuth 2.0プロトコルベースの認証の二つのタイプがあります。

認証(JWT)

  1. クライアントはAuth via Social Networkリクエストをエクソラログインサーバーに送信します。
  2. エクソラログインサーバーは、PlayFabに認証リクエストを送信します。
  3. ユーザーデータがエクソラデータベースに書き込まれます。
  4. 以下の場合にはエクソラログインサーバーは、ユーザーJWTを生成します:
    • PlayFabリクエストへの応答からのPlayFabId値は、external_account_idクレームに書き込まれます。
    • PlayFabリクエストへの応答からのSessionTicketは、session_ticketクレームに書き込まれます。
  5. ユーザーは、クエリパラメータtokenを使用してlogin_urlにリダイレクトされます。 ユーザーJWTがtokenパラメータに書き込まれます。

認証(OAuth 2.0)

  1. クライアントは、redirect_uriパラメータを指定したAuth via Social Networkリクエストをエクソラログインサーバーに送信します。
  2. エクソラログインサーバーは、PlayFabに認証リクエストを送信します。
  3. ユーザーデータがエクソラデータベースに書き込まれます。
  4. エクソラログインサーバーは、PlayFabのデータを変更するリクエストを送信します。
  5. ユーザーは、クエリパラメータcodeを使用してredirect_uriにリダイレクトされます。
  6. クライアントは、Generate User JWTリクエストをエクソラログインサーバーに送信して、受信したcodeをユーザーJWTと交換します。
  7. 以下の場合には、エクソラログインサーバーはユーザーJWTを生成します:
    • PlayFabリクエストへの応答からのPlayFabId値は、external_account_idクレームに書き込まれます。
    • Twitch認証リクエストにscope = playfabを渡した場合、PlayFabリクエストへの応答からのSessionTicketは、session_ticketクレームに書き込まれます。

Info: PlayFabのユーザーレコードがTwitchアカウントにリンクされている場合、1つのアカウントと見なされます。

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

ユーザーパスワードのリセットフローは次のとおり:

  1. クライアントはReset Passwordリクエストをエクソラログインサーバーに送信します。
  2. エクソラログインサーバーは、パスワードリセットリクエストをPlayFabに送信します。
  3. 更新されたパスワードはPlayFabに書き込まれます。

ユーザーをブロックする

パブリッシャーアカウント>あなたのログインプロジェクト>ユーザーでユーザーをブロックできます。 ブロックされたユーザーは認証できません。 ブロッキングに関するレコードは、エクソラデータベースにのみ保存されます。

使用に適した方

ログインを統合済みで、PlayFabにプロジェクトを持っているパートナー。

使用するには

PlayFabストレージを接続するには:

  1. パブリッシャーアカウント>あなたのログインプロジェクト>一般設定に移動します。
  2. ユーザーデータストレージブロックでPlayFabを選択します。
  3. PlayFabアカウントのTitle IDを入力します。

Info: PlayFabメソッドを使用して、ユーザーに追加のメールを送信できます。

PlayfabでTwitchを設定するには:

  1. Twitchアカウントを作成し、Twitch Client IDを取得します。
  2. あなたのログインプロジェクト>ソーシャルコネクションに移動します。
  3. Application IDフィールドにTwitch Client IDを入力してTwitch.tvを接続します。
  4. 指示に従って、PlayFabアカウントでTwitchを設定します。
  5. APIメソッドを介してエクソラログインを統合した場合:
    1. Twitchによる認証用リンクを取得します。 ソーシャル認証方式を使用します(JWTまたはOAuth 2.0)。
    2. 受け取ったリンクをUIに配置します。