> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0 が WordPress とどのように統合されるかのシナリオについて説明します

# WordPress と統合する

Login by Auth0 プラグインは、受信した Auth0 のプロフィールデータを基にユーザーアカウントを作成または照合し、ログインフローとアカウント作成フローを自動的に処理します。ログインプロセスとサインアッププロセスは似ており、WordPress データベース内のデータに基づいてアカウントが作成または照合されます。Auth0 経由でログインすると WordPress アカウントが作成され、Auth0 経由でサインアップすると既存の WordPress アカウントと照合されます。

プラグインで User Migration 設定を使用している場合、ログインフローは以下で説明する内容と多少異なります。詳細については、[Login by Auth0 WordPress Plugin での User Migration](/ja/docs/customize/integrations/cms/wordpress-plugin/user-migration-in-login-by-auth0) を参照してください。

以下に、このプロセスの手順を示します。

1. ユーザーは WordPress サイトのログインページにアクセスします。ログインページは、`[SITE URL]/wp-login.php` にあるメインのログインページ、またはウィジェットやショートコードが含まれるページです。
2. ユーザーは、ユーザー名とパスワードを入力するか、別のIDプロバイダーを使用するためにソーシャルアイコンをクリックするか、Auth0 のログインフォームである Lock でパスワードレスのプロセスを完了します。
3. Auth0 は、選択した方法でユーザーの認証を試みます。

   1. username + password またはパスワードレスでのログインやサインアップに失敗した場合、Lock にエラーメッセージが表示されます。
   2. 成功した場合、処理は続行されます。
4. ユーザーは、プラグインによって生成されたログインチケットと `state` 値とともに `/authorize` エンドポイントへリダイレクトされます。これが完了すると、Auth0 のユーザーレコードが作成され、その後の処理は WordPress サイト側で行われます。
5. 実際のログインプロセスは、[Authorization Code Flow](/ja/docs/get-started/authentication-and-authorization-flow/authorization-code-flow) と [Implicit Flow](/ja/docs/authenticate/login/oidc-conformant-authentication/oidc-adoption-implicit-flow) のどちらを使用するかによって異なります。

   1. Authorization Code Flow ログインの場合:

      1. ユーザーはコールバック URL `SITE URL/index.php?auth0=1` にリダイレクトされ、URL パラメーターに認可 code と同じ `state` 値が渡されます。
      2. `state` 値が検証されます。検証に失敗した場合は、"Invalid state" エラーが表示され、ログイン処理は停止します。state の検証について詳しくは、[Auth0 WordPress Plugin によるログインのトラブルシューティング](/ja/docs/customize/integrations/cms/wordpress-plugin/troubleshoot-login-by-auth0)を参照してください。
      3. 転送中に改ざんされていないことを確認するために、IDトークンが検証されます。IDトークンが無効な場合は、エラーメッセージが表示され、ログイン処理は停止します (IDトークンの検証について詳しくは、トラブルシューティングのページを参照してください) 。
      4. ユーザープロファイルのデータは、Machine-to-Machine Flow を使用して Management API 経由で取得されます。詳しくは、[Machine-to-Machine Flow](/ja/docs/get-started/authentication-and-authorization-flow/client-credentials-flow)を参照してください。
   2. Implicit Flow ログインの場合:

      1. ユーザーはコールバック URL `SITE URL/wp-login.php?auth0=implicit` にリダイレクトされ、アンカーリンクに IDトークン と同じ `state` 値が含まれます。
      2. このアンカーリンクは JS で解析された後、同じ 2 つの値を URL パラメーターに含めてコールバック URL `SITE URL/index.php?auth0=implicit` に POST されます。
      3. 転送中に改ざんされていないことを確認するために、IDトークンが検証されます。IDトークンが無効な場合は、エラーメッセージが表示され、ログイン処理は停止します (IDトークンの検証について詳しくは、トラブルシューティングのページを参照してください) 。
      4. 有効な IDトークン に含まれる情報が、ユーザープロファイルのデータとして使用されます。
6. Auth0 の認証プロセスが完了すると、プラグインはプロフィールデータに一致する WordPress 内のユーザーを見つけようとします。
7. プラグインは、サイトでメールアドレスが必須かどうか (プラグイン設定の **Advanced** タブ) と、受信したプロファイルで `email_verified` フラグが設定されているかどうかを確認します。

   1. サイトでメールアドレスが必須にもかかわらず、ログインしてきたユーザーからメールアドレスが提供されない場合 (X など、一部のソーシャルIDプロバイダーではメールアドレスが含まれません) 、ログイン処理は "This account does not have an email associated." というエラーメッセージを表示して停止します。
   2. サイトでメールアドレスが必須で、ログインしてきたユーザーの `email_verified` フラグが `true` に設定されていない場合、ログイン処理は "This site requires a verified email address" というエラーメッセージと、確認メールを再送信するリンクを表示して停止します。これは、ユーザーがメールアドレスの確認を正常に完了するまで表示され続けます。
   3. サイトでメールアドレスが必須でない場合、またはログインしてきたユーザーの `email_verified` フラグが `true` に設定されている場合は、ログイン処理が続行されます。
8. プラグインは、受信した Auth0 ユーザー ID と一致する `usermeta` 値を持つユーザーが WordPress データベース内に存在するかどうかを確認します (つまり、そのユーザーは以前に Auth0 でサインアップまたはログインしています) 。

   1. 受信したユーザー ID を持つユーザーが見つかった場合、ログイン処理は続行されます。
   2. 受信した Auth0 ユーザー ID に一致するユーザーが見つからない場合、プラグインは受信したユーザーに一致するメールアドレスを検索します:

      1. 一致するユーザーが見つかった場合、そのユーザーが選択され、ログイン処理は続行されます。
      2. 一致するユーザーが見つからない場合、プラグインは WordPress サイトで登録が有効になっているかどうかを確認します:

         1. 登録が無効になっている場合、ログイン処理は "ユーザーを作成できませんでした。登録処理は利用できません" というエラーメッセージを表示して停止します。`.`
         2. 登録が有効になっている場合、新しいユーザーが作成され、ログイン処理は続行されます。
9. 見つかった、または新規作成されたユーザーは、Auth0 ユーザー ID を含む、渡された Auth0 プロファイルデータで更新されます。
10. ユーザーは `wp_set_auth_cookie` を使用して WordPress アカウントにログインし、WordPress コアの `do_login` アクションが発火します。
11. ユーザーはサイト上のページにリダイレクトされます。リダイレクト先は、プラグイン設定の**Advanced**タブで設定されたデフォルトのページ、ショートコードまたはウィジェットを使用した場合は元のログインURL、またはログイン処理中に別途指定されたページのいずれかです。

ユーザーは現在、Auth0 と WordPress アカウントの両方にログインしており、両者は Auth0 のユーザー ID で関連付けられています。

<div id="learn-more">
  ## 詳細
</div>

* [Login by Auth0 をインストールする](/ja/docs/customize/integrations/cms/wordpress-plugin/install-login-by-auth0)
* [Login by Auth0 を設定する](/ja/docs/customize/integrations/cms/wordpress-plugin/configure-login-by-auth0)
* [Login by Auth0 WordPress プラグインのトラブルシューティング](/ja/docs/customize/integrations/cms/wordpress-plugin/troubleshoot-login-by-auth0)
* [Login by Auth0 WordPress プラグインの拡張](/ja/docs/customize/integrations/cms/wordpress-plugin/extend-login-by-auth0)
