仕組み
- ユーザーが Auth0 のログインフォーム (サイトに埋め込まれたもの、または Auth0 でホストされているもの) からログインを試みます。
- Auth0 が、指定された認証情報に対応するユーザーをデータベース接続内で見つけられない場合、ユーザーの認証情報と移行トークンを使って、WordPress サイト上の Migration エンドポイントを呼び出します。
- プラグインは、指定された username またはメールアドレスに一致するユーザーを WordPress データベース内で見つけ、パスワードを検証します。
- ユーザーを正常に認証できた場合、Auth0 はそのサイトのデータベース接続にユーザーを作成し、ユーザーを認証してログインさせます。
- 次回以降ユーザーがログインするときは、Auth0 のユーザーが使用され、Migration エンドポイントはスキップされます。
セットアップと設定
- アプリケーションを作成して正しく設定し、そのアプリケーション用の空のデータベース接続を作成して有効にします。これらは、標準のセットアップウィザードのプロセスで作成したものをそのまま使用することも、一から作成することもできます。セットアップウィザードの詳細については、Install Login by Auth0を参照してください。
- WordPress の Auth0 > Settings 画面で、Basic タブの正しいフィールドにアプリケーションのドメイン、クライアントID、クライアントシークレットが保存されていることを確認します。
-
Advanced ビューで、User Migration Endpoints 設定を有効にし、Save Changes を選択します。定数ベースの設定を使用している場合は、
AUTH0_ENV_MIGRATION_WSをtrueに設定し、AUTH0_ENV_MIGRATION_TOKENには、16文字以上で、シングルクォートまたはバックスラッシュを含まない安全なランダム文字列を設定します。 - 設定欄に セキュリティトークン が表示されているはずです。後の手順でこの値が必要になるため、このページは開いたままにしておいてください。
- Auth0 Dashboard で、使用するデータベース接続に移動し、Requires Username と Import Users to Auth0 を有効にします。
- Custom Database ビューを選択し、Use my own database を有効にします。
- この設定の下の Database Action Scripts には、Login 用と Get User 用の 2 つのタブがあるはずです。
- Login ビューを選択し、既存のコードを削除して、GitHub リポジトリから db-login.js のコードをコピーし、それをコードエディターに貼り付けます。
-
この手順はバージョン 3.10.0 以前が対象です:
{THE_WS_URL}を探し、WordPress インスタンスのサイト URL の末尾に/index.php?a0_action=migration-ws-loginを付けたものに置き換えます。サイト URL は、wp-admin の Settings > General 画面で確認できます。完全な URL をブラウザーに貼り付けてテストできます。{"status":401,"error":"Unauthorized"}と表示されるはずです。 -
この手順はバージョン 3.10.0 以前が対象です:
{THE_WS_TOKEN}を探し、ユーザー移行エンドポイント設定に表示されているトークンに置き換えます。 - エディターにエラーがないことを確認してください。問題がなければ、上部の Save をクリックしてください。
-
この手順は 3.11.0 以降向けです: Settings までスクロールし、次の設定変数を追加します。
endpointUrlは、WordPress インスタンスのサイト URL (wp-admin > Settings > General > “Site URL” フィールド) の末尾に/index.php?a0_action=を追加した値に設定します。migrationTokenは、上記のステップ 4 で確認したセキュリティ トークンの値に設定します。userNamespaceは、Auth0 の Application 名、または英字、数字、ダッシュのみを含む任意の値に設定します。

- 上部のTryボタンをクリックし、表示されるフォームに有効なWordPressユーザーアカウントを入力します。すると、“The profile is” に続いて、ユーザーのデータが表示されるはずです。表示されない場合は、以下のTroubleshootingセクションを参照してください。
- Get User ビューを選択し、既存のコードを削除して、GitHub リポジトリから db-get-user.js のコードをコピーし、コードエディターに貼り付けます。
-
この手順は 3.10.0 以前が対象です:
{THE_WS_URL}を探し、これを WordPress インスタンスのサイト URL に置き換え、その末尾に /index.php?a0_action=migration-ws-get-userを追加します。サイト URL は、wp-admin の Settings > General 画面で確認できます。完全な URL をブラウザーに貼り付けてテストできます。{"status":401,"error":"Unauthorized"}が表示されれば成功です。 -
この手順は 3.10.0 以前にのみ適用されます:
{THE_WS_TOKEN}を探し、User Migration Endpoints 設定に表示されているトークンに置き換えます。 - エディターにエラーがないことを確認してください。問題がなければ、Save をクリックしてください。
- 上部のTryボタンをクリックし、表示されたフォームに有効なWordPressユーザーアカウントに関連付けられたメールアドレスを入力します。すると、“The profile is”に続いてユーザーのデータが表示されます。表示されない場合は、以下のTroubleshootingセクションを参照してください。
- 新しいブラウザーセッションで、WordPress サイトのログインページに移動し、ログインを試してください (そのユーザーはまだデータベースに存在していない必要があります) 。最初は通常よりログイン処理に少し時間がかかりますが、ログイン自体は成功するはずです。以降のログインはより速くなります。
- (任意) 移行エンドポイントのセキュリティをさらに強化するには、WordPress の Auth0 > Settings 画面に移動し、追加のセキュリティを有効にしてから Save Changes をクリックします。別のユーザーでログインを試し、Auth0 が引き続きエンドポイントにアクセスできることを確認してください。
トラブルシューティング
- Custom Database スクリプト内の URL またはトークンが正しくない。
- IP 許可リストが有効になっているが、IP アドレスが正しくない。
- WordPress インスタンス上のエンドポイントが制限されている、またはキャッシュされている。
Unexpected token < in JSON at position 0
{"status":401,"error":"Unauthorized"}
// or
{"status":403,"error":"Forbidden"}
表示されるのがホームページまたは 404 の場合、URL は正しくありません。WordPress 管理画面の Settings > General > Site URL でサイト URL を確認してください。Login スクリプト には末尾に /index.php?a0_action=migration-ws-login を追加し、Get User スクリプトには末尾に /index.php?a0_action=migration-ws-get-user を追加します。
- バージョン 3.10.0 以前: URL の値は、スクリプト内の
request.post呼び出しの最初のパラメーターとして記述されているはずです。 - バージョン 3.11.0 以降: トークンの値は設定変数に保存する必要があります。関数の 1 行目に次のコードを追加し、Try ボタンを使って
endpointUrlに何が保存されているか確認してください。
callback(null, configuration);
URL が正しいことを確認してもこの問題が解決しない場合は、それらの URL がキャッシュされていたり、何らかの形で制限されていたりしないか、ホスティング事業者に確認してください。
メールアドレスまたはパスワードが正しくありません
callback(null);
次のように変更します。
callback(wpUser.error);
スクリプトを保存し、接続をもう一度試します。次のいずれかのメッセージが表示され、以下の手順で問題を特定できるはずです。問題を解決したら、スクリプトを元に戻してください。
Forbidden
- バージョン 3.10.0 以前: トークン値は、スクリプト内の
access_token:の後に記載されている必要があります - バージョン 3.11.0 以降: トークン値は設定変数に保存する必要があります。関数の先頭行に次を追加し、Try ボタンを使用して
migrationTokenに保存されている内容を確認してください。
callback(null, configuration);
これは、移行用 IP 許可リストが有効になっているものの、送信元 IP アドレスがそのリストに含まれていないことを意味します。Login スクリプトのすぐ下に、IP アドレスの一覧が表示されているはずです。


Authorization ヘッダーを解析できるようにホスティング事業者に相談する必要があります。サーバーのトラブルシューティングについては、Apache 2.4 + PHP-FPM and Authorization headers on stackoverflow.com を参照してください。トークンの取得方法を確認するには、GitHub リポジトリ内のプラグインコードを参照してください。
無効なトークン
無効な認証情報
メールアドレスを変更できない、または誤ったユーザーデータが保存される
- 保持すべきユーザーデータがない場合 (接続をログイン対応のためだけに使用し、メタデータを保存していない場合) は、上記の手順 (3.11.0 の注記を参照) に従って新しいカスタムデータベース接続を作成し、Application をその新しい接続に切り替えることができます (古い接続は必ずオフにしてください) 。移行は再開されるため、ユーザー体験への影響はありません。
- Auth0 に保持すべきデータがある場合は、User Import/Export Extension を使用して、ユーザーデータを調整できます。
- 上記の手順 (3.11.0 の注記を参照) に従って、新しいカスタムデータベース接続を作成します。
- 既存の接続からすべてのユーザーをエクスポートします (切り替え時に取りこぼしが発生しないよう、この作業中はサイトをメンテナンスモードにすることを推奨します) 。
- 新しい接続の作成時に使用した名前空間を追加するように、すべてのユーザー ID を変更します。たとえば、ユーザー ID は
auth0|123のような形式からauth0|Your-WP-Site-Name|123のような形式になります。あわせて、インポートスキーマに従うために必要なほかのフィールドも調整してください。詳細については、Bulk User Import Database Schema and Examples を参照してください。 - アプリケーションで新しい接続をオンにし、古い接続をオフにします。
- 新しいユーザーデータを新しい接続にインポートし、テストします。
- 有料アカウントをご利用の場合は、サポートチームに依頼して、ユーザー ID を名前空間付きの形式に変更するデータベース更新スクリプトを実行し、同時にデータベーススクリプトへ名前空間を追加してもらうこともできます (上記 Set Up and Configuration の手順 12) 。