Skip to main content
Login by Auth0 プラグインは、Auth0 から渡されるプロファイルデータを使ってユーザーアカウントを作成または照合し、ログインフローとアカウント作成フローを自動的に処理します。ログインプロセスとサインアッププロセスはよく似ており、WordPress データベース内のデータに基づいてアカウントが作成または照合されます。Auth0 経由でログインすると WordPress アカウントが作成され、Auth0 経由でサインアップすると既存の WordPress アカウントと照合されます。 プラグインでユーザー移行設定を使用している場合、ログインフローは以下で説明するものとは少し異なります。詳しくは、Login by Auth0 WordPress Plugin におけるユーザー移行をご覧ください。 以下は、そのプロセスの手順です。
  1. ユーザーがWordPressサイトのログインページにアクセスします。これは、[SITE URL]/wp-login.php にあるメインのログインページ、またはウィジェットやショートコードを含むページである場合があります。
  2. ユーザーはユーザー名とパスワードを入力するか、別のアイデンティティプロバイダーを使うためにソーシャルアイコンをクリックするか、またはLockのAuth0ログインフォームでパスワードレスの手順を完了します。
  3. Auth0 は、選択された方法を使ってユーザーの認証を試みます。
    1. ユーザー名 + パスワード、またはパスワードレスでのログインまたはサインアップに失敗すると、Lock にエラーメッセージが表示されます。
    2. 成功した場合は、処理が続行されます。
  4. ユーザーは、プラグインによって生成されたログインチケットと state の値を含めて /authorize エンドポイントにリダイレクトされます。これが完了すると Auth0 のユーザーレコードが作成され、以降の処理は WordPress サイト上で行われます。
  5. 実際のログインプロセスは、認可コードフローImplicit Flow のいずれを使用しているかによって異なります:
    1. 認可コードフローでのログインの場合:
      1. ユーザーは、認可コードと同じ state 値が URLパラメーターに含まれたコールバックURL SITE URL/index.php?auth0=1 にリダイレクトされます。
      2. state 値がバリデーションされます。バリデーションに失敗した場合は、“Invalid state” エラーが表示され、ログインプロセスは停止します。state のバリデーションの詳細については、Login by Auth0 WordPress Plugin のトラブルシューティング を参照してください。
      3. 転送中に改変されていないことを確認するため、ID トークンが検証されます。ID トークンが無効な場合は、エラーメッセージが表示され、ログインプロセスは停止します (ID トークンの検証の詳細については、Troubleshooting ページを参照してください)
      4. ユーザープロファイルデータは、Machine-to-Machine Flow を使用して Management API 経由で取得されます。詳細については、Machine-to-Machine 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 で関連付けられています。

詳細情報