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

- 上部の試すボタンをクリックし、表示されるフォームで有効な WordPress ユーザーアカウントを使用します。“The profile is” に続いて、ユーザーのデータが表示されるはずです。表示されない場合は、以下のトラブルシューティングセクションを参照してください。
- 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 の 設定 > General 画面で確認できます。完全な URL をブラウザーに貼り付けてテストできます。{"status":401,"error":"Unauthorized"}が表示されるはずです。 -
この手順は 3.10.0 以前が対象です:
{THE_WS_TOKEN}を探し、ユーザー移行 Endpoints 設定の下に表示される token に置き換えます。 - エディターにエラーが表示されていないことを確認してください。問題がなければ、Save をクリックします。
- 上部の試すボタンをクリックし、表示されるフォームで有効な WordPress ユーザーアカウントのメールアドレスを使用します。“The profile is” に続いて、ユーザーのデータが表示されるはずです。表示されない場合は、以下のトラブルシューティングセクションを参照してください。
- 新しいブラウザーセッションで、WordPress サイトのログインページに移動し、ログインを試みます (そのユーザーはまだデータベースに存在していない必要があります) 。最初はログインプロセスに通常より少し時間がかかりますが、成功するはずです。以後のログインはより速くなります。
- (任意) 移行エンドポイントの追加セキュリティを有効にするには、WordPress の Auth0 > 設定 画面に移動し、それを有効にしてから 変更を保存 します。別のユーザーでログインを試し、Auth0 が引き続きエンドポイントに到達できることを確認してください。
トラブルシューティング
- カスタムデータベーススクリプト内の URL またはトークンが正しくない。
- IP 許可リストが有効になっているが、設定されている IP アドレスが正しくない。
- WordPress インスタンス上のエンドポイントが制限されている、またはキャッシュされている。
JSON の位置 0 に予期しない token < があります
{"status":401,"error":"Unauthorized"}
// or
{"status":403,"error":"Forbidden"}
ホームページまたは 404 が表示される場合は、URL が正しくありません。WordPress の管理画面で 設定 > 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 以降の場合: token の値は configuration 変数に保存されている必要があります。関数の 1 行目に以下を追加し、試す ボタンを使って
endpointUrlに保存されている内容を確認してください。
callback(null, configuration);
URL が正しいことを確認してもこの問題が解消しない場合は、それらの URL がキャッシュされていたり、何らかの形で制限されたりしていないかをホストに確認してください。
メールアドレスまたはパスワードが正しくありません
callback(null);
これを:
callback(wpUser.error);
スクリプトを保存し、接続をもう一度試してください。以下のいずれかのメッセージが表示され、下の手順で問題を特定できるはずです。問題を解決したら、スクリプトを元に戻してください。
Forbidden
- バージョン 3.10.0 以前: トークンの値は、スクリプト内の
access_token:の後に記載されているはずです - バージョン 3.11.0 以降: トークンの値は、設定変数に保存されている必要があります。関数の 1 行目に以下を追加し、試す ボタンを使って
migrationTokenに何が保存されているかを確認してください。
callback(null, configuration);
これは、移行用の IP 許可リストが有効になっているものの、送信元の IP アドレスがそのリストに含まれていないことを意味します。Login スクリプトのすぐ下に、IP アドレスの一覧が表示されているはずです。


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