> ## 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.

> WordPress サイトで Auth0 WordPress プラグインを使用する際の認証プロセスについて説明します。

# WordPress との連携

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

プラグインでユーザー移行設定を使用している場合、ログインフローは以下で説明するものとは少し異なります。詳しくは、[Login by Auth0 WordPress Plugin におけるユーザー移行](/docs/ja-jp/customize/integrations/cms/wordpress-plugin/user-migration-in-login-by-auth0)をご覧ください。

以下は、そのプロセスの手順です。

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

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

   1. 認可コードフローでのログインの場合:

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

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

   1. サイトでメールアドレスが必須で、ログインしてきたユーザーがメールアドレスを提供していない場合 (X など、一部のソーシャルアイデンティティプロバイダーではメールアドレスが含まれません) 、"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アカウントにログインされ、コアの `do_login` アクションが発火します。
11. ユーザーはサイト上のページにリダイレクトされます。リダイレクト先は、プラグインの設定 **Advanced** タブで設定されたデフォルトのページ、ショートコードまたはウィジェットが使用された場合は元のログインURL、またはログインプロセス中に別途指定されたページです。

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

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

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