WordPressとの統合

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

プラグインでユーザー移行の設定を使用している場合、ログインフローは以下で説明するものと若干異なります。詳細については、「WordPressプラグインのLogin by Auth0でユーザーを移行する」をお読みください。

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

  1. ユーザーがWordPressのサイトのログインページにアクセスします。これは、[SITE URL]/wp-login.phpのメインログインページ、またはウィジェットやショートコードを含むページである可能性があります。

  2. ユーザーがユーザー名とパスワードを入力し、ソーシャルアイコンをクリックして別のIDプロバイダーを使用するか、Auth0ログインフォームのLockでパスワードレスプロセスを完了します。

  3. Auth0が選択された方法でユーザーの認証を試みます。

    1. ユーザー名とパスワードまたはパスワードレスでログインまたはサインアップが失敗すると、Lockにエラーメッセージが表示されます。

    2. 成功すると、プロセスが継続します。

  4. ログインチケットとプラグインによって生成されたstate値を使用して。ユーザーが/authorizeエンドポイントにリダイレクトされます。これが完了すると、Auth0ユーザーレコードが作成され、残りのプロセスはWordPressサイトで実行されます。

  5. 実際のログインプロセスは、使用しているフローが認可コードフローまたは暗黙フローかによって異なります。

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

      1. 認可コードとURLパラメーター内の同じstate値を持つコールバックURLのSITE URL/index.php?auth0=1にユーザーがリダイレクトされます。

      2. state値が検証されます。検証に合格しない場合は、「無効な状態」エラーが表示され、ログインプロセスが停止します。状態検証の詳細については、「WordPressプラグインのLogin by Auth0のトラブルシューティング」をお読みください。

      3. IDトークンが検証され、送信中に改ざんされていないことが確認されます。IDトークンが無効である場合は、エラーメッセージが表示され、ログインプロセスが停止します(IDトークンの検証の詳細については、トラブルシューティングのページを参照してください)。

      4. ユーザープロファイルデータは、マシンツーマシンフローを使用してManagement API経由で取得されます。詳細については、「マシンツーマシンフロー」をお読みください。

    2. 暗黙フローのログインの場合:

      1. IDトークンとアンカーリンク内の同じstate値を持つコールバックURLのSITE URL/wp-login.php?auth0=implicitにユーザーがリダイレクトされます。

      2. このアンカーリンクはJSで解析され、同じ2つの値をURLパラメーターに含めてコールバックURのSITE URL/index.php?auth0=implicitにポストバックされます。

      3. IDトークンが検証され、送信中に改ざんされていないことが確認されます。IDトークンが無効である場合は、エラーメッセージが表示され、ログインプロセスが停止します(IDトークンの検証の詳細については、トラブルシューティングのページを参照してください)。

      4. 有効なIDトークンの情報は、ユーザープロファイルデータとして使用されます。

  6. Auth0の認証プロセスが完了すると、プラグインがプロファイルデータをWordPressのユーザーと照合しようとします。

  7. プラグインがサイトにメールアドレスが必要か(プラグイン設定の[Advanced(詳細)]タブ)、そして受け取るプロファイルにemail_verifiedフラグが設定されているを確認します。

    1. サイトにメールアドレスが必要で、ユーザーがメールアドレスを提供しない場合(Xなどの一部のソーシャルIDプロバイダーはメールアドレスを含めません)、ログインプロセスが停止し、「このアカウントにはメールが関連付けられていません」というエラーメッセージが表示されます。

    2. サイトにメールアドレスが必要で、ユーザーのemail_verifiedフラグがtrueに設定されていない場合は、ログインプロセスが停止し、「このサイトには確認済みのメールアドレスが必要です」というエラーメッセージと検証メールを再送信するためのリンクが表示されます。これは、ユーザーがメールアドレスを正常に確認するまで表示されたままになります。

    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ユーザーIDを使って関連付けられます。

もっと詳しく