メインコンテンツへスキップ
以下は、よくあるトラブルシューティングに関する質問です。以下の項目で問題が解決しない場合は、次の方法をお試しください。

ログインできず、「Invalid state」というエラーメッセージが表示される

state の検証は、version 3.6.0 で追加されたセキュリティ機能です。通常、このエラーは callback URL がキャッシュされていることが原因で発生します (キャッシュしてはいけない callback URL については、Application Settings を参照してください) 。詳細については、Troubleshoot WordPress Plugin Invalid State Errors を参照してください。

カスタムデータベースの使用時に、ログインやメールアドレス/パスワードの変更で問題が発生する

考えられる解決策については、Login by Auth0 WordPress Plugin における User Migrationを参照してください。

「Invalid IDトークン」または「Expired IDトークン」というエラーメッセージが表示され、ログインできない

これは通常、サーバーの時刻設定が正しくないことが原因です。エラーメッセージに「used too early」と含まれている場合は、サーバー時刻が未来に設定されています。トークンの有効期限が切れていると表示される場合は、サーバー時刻が過去にずれすぎています。2 台のサーバー間で時刻に差が生じることは珍しくありません。サーバー上の PHP で echo date(DateTime::ISO8601) を出力し、秒単位まで含めて現在の UTC 時刻と比較してください。サーバー時刻が UTC 時刻から 60 秒 (デフォルトの許容幅) 以上ずれている場合は、サーバーのクロックスキューを考慮して、許容幅をより長く設定する必要があります。以下のコードは、プラグインの読み込み後かつログイン Hook の実行前に実行される場所であれば、テーマの functions.php またはその他の場所に貼り付けることができます。
add_filter( 'auth0_jwt_leeway', function( $default_leeway ) { return 120; } );
これにより、120 秒の猶予が設けられます。サーバーの時刻がどの程度ずれているかに応じて、調整が必要になる場合があります。

「このアカウントには関連付けられたメールアドレスがありません…」というエラーメッセージが表示されてログインできない

このエラーが表示される場合は、接続 > ソーシャル で、各プロバイダーに対してメールアドレスを要求する設定になっていることを確認してください (各プロバイダーを展開してください) 。なお、すべてのプロバイダーがユーザーのメールアドレスを返すわけではありません (例: X) 。その場合は、Auth0 Dashboard (または API) から、ログイン済みの任意のユーザーにいつでもメールアドレスを追加できます。ユーザー > 編集 を参照してください。 email_verified フラグを提供しない接続 (これを含まない Enterprise 接続もあります) 、または特定のソーシャル接続でこの検証をスキップするには、その接続の strategy を “Skip Strategies” フィールドに追加します。このフィールドは、wp-admin > Auth0 > Settings > Advanced からアクセスできる Require Verified Email スイッチの下にあります。 このフィールドは、Auth0 が推奨するセキュリティ対策を回避してしまうため、必要な場合にのみ使用してください。

ログインしようとすると、「There is a user with the same email」というエラーメッセージが表示される

これは、ログインに使用しているメールアドレスと同じメールアドレスを持つユーザーが WordPress に存在し、そのユーザーが別の Auth0 ユーザーに関連付けられていることを意味します。プラグインのテスト中である場合や、既存のユーザーを新しい Auth0 ユーザーに関連付けたい場合は、代わりに次の手順を実行してください。
  1. 管理者としてログインします
  2. wp-admin > Users に移動し、使用しているメールアドレスを検索します
  3. ユーザーのユーザープロファイルを開き、一番下までスクロールします
  4. Delete Auth0 Data をクリックして確認します
Auth0 に同じメールアドレスを持つユーザーアカウントが 2 つある場合、このエラーメッセージは解消されません。ユーザーアカウントをリンクすることをお勧めします。

ログインしようとすると、ブラウザーのコンソールログに「Failed cross origin authentication」または「No verifier returned from client」というエラーメッセージが表示される

Auth0 Dashboard > Applications > Applications に移動し、WordPress アプリケーションを選択して設定を表示します。Allowed Callback URLsAllowed Origins (CORS) が WordPress サイトと一致していることを確認してください。 Chromium ベースのブラウザーを使用している場合は、サードパーティ Cookie が無効になっていないことを確認してください。詳細については、Cross-Origin Authentication を参照してください。

Setup Wizard を再実行したいのですが、メニューオプションが表示されなくなりました。

これは、プラグインがすでにドメイン、、および で設定済みであることを意味します。Setup Wizard をもう一度実行すると、予期しない結果になる可能性があります。WordPress を初めて設定していて、まだ一度もログインしておらず、最初からやり直したい場合は、次の手順に従ってください。
  1. wp-admin > Auth0 > Settings > Basic に移動します。
  2. ドメインとクライアントIDを削除します。下にスクロールして Save Changes をクリックします。
  3. Auth0 Dashboard > Applications > Applications に移動します。
  4. WordPress によって作成された Application を見つけます (名前は WordPress サイトのサイト名になっているはずです) 。
  5. Application を選択して設定を表示します。下にスクロールして、Delete Application を選択します。
  6. Auth0 Dashboard > Authentication > Database に移動します。
  7. WordPress によって作成された接続を見つけます (名前は WordPress サイトのサイト名の先頭に “DB-” を付けたものになっているはずです) 。
  8. 接続を選択して設定を表示します。下にスクロールして、I Want To Delete This Connection. を選択します。これにより、その接続と、その中で作成されたすべてのユーザーが削除される点に注意してください。
  9. WordPress に戻ります。これで、管理メニューの Auth0 の下に Setup Wizard オプションが表示されます。

パスワードレスログインはどのように設定しますか?

ログインは、メールまたはSMSを使用して、Auth0対応のあらゆるWebサイトで利用できます。これをWordPressサイトで機能させるには:
  1. プラグイン設定の Features ビューで Passwordless Login をオンにし、保存します。
  2. Auth0 Dashboard > Authentication > Passwordless に移動します。
  • メールを使用するには、Email 接続をオンにし、必要に応じて設定を変更します。これにより、メールで送信されたcodeを使ったログインが有効になります (ユーザーにcodeがメールで送信され、その後サイトのログインフォームに入力されます) 。
  • 「マジックリンク」 (メールで送信されたリンクを開くと自動的にログインされる方式) を使用するには、プラグイン設定の Advanced タブにある “Extra Settings” フィールドに {passwordlessMethod: 'code'} を追加します。
  • SMSログインを使用するには、SMS 接続をオンにし、手順に従ってTwilio開発者アカウントを設定します (使用状況によっては有料のTwilioアカウントが必要になります) 。
Auth0のログインフォームは、上で有効にした接続に応じてパスワードレスの方式を選択します。両方の接続が有効な場合、デフォルトではメールが使用されます。この場合は、SMSを表示するためにメール接続をオフにするか、プラグイン設定の Advanced タブにある Connections フィールドに sms を追加します。

WordPress で同じユーザーに 2 つのアカウントがある

状況によっては、同じユーザーに対して 2 つのアカウントが存在することがあります。WordPress では、いずれか一方のアカウントを削除し、そのアカウントのコンテンツを別のユーザーに引き継ぐことで、ユーザーを統合できます。wp-admin > Users に移動し、削除するアカウントを選択して、確認ダイアログでコンテンツの移行先となる別のユーザーを選択します。

設定が誤っていて Auth0 を使用して認証できません。プラグインにアクセスする別の方法はありますか?

プラグインには、通常の WordPress ログインの URL に ?wle を追加し、有効な WordPress の認証情報を使用してアクセスできます。例: http://yourdomain.com/wp-login.php?wle

ユーザーのログイン時に問題が発生しています。何が起きているかのログはどこで確認できますか?

このプラグインにはエラーログがあり、そこで何が起きたかを確認できます。Auth0 プラグインメニューの Error Log サブ項目からアクセスしてください。追加情報は Auth0 Dashboard > Monitoring > Logs で確認できます。

ウィジェットまたはショートコードをデフォルトでサインアップモードで表示するにはどうすればよいですか?

ウィジェットの Extra configuration 設定 (またはショートコードの extra_conf 属性) を使用し、JSON {"mode":"signup" } を追加すると、プラグインをこのモードで表示するよう強制できます。

プラグインを使用してログインを強制しても、ユーザーがログイン状態にならない

通常、これはログイン後のページがキャッシュされていることが原因です。これを軽減する方法についてホストに確認するか、URL にキャッシュ無効化用のパラメーターを追加してみてください。詳しくは、GitHub のこの gist を参照してください

“Force Login” プラグインを使用してもユーザーがログイン状態にならない

これは、callback URL が AllowList に追加されていないためです。my_forcelogin_whitelist フィルターに次のコードを追加してみてください。
function wp_auth0_forcelogin_whitelist( $whitelist ) {
  if ( ! empty( $_GET['auth0'] ) ) {
    $whitelist[] = site_url($_SERVER['REQUEST_URI']);
  }
  return $whitelist;
}
add_filter('v_forcelogin_whitelist', 'wp_auth0_forcelogin_whitelist', 10, 1);

ログイン後にユーザーを特定のURLにリダイレクトするにはどうすればよいですか?

すべてのリダイレクトは、実行前に wp_safe_redirect() で検証されます。メインのドメイン以外のドメインにリダイレクトしようとしている場合は、WordPress コアの allowed_redirect_hosts フィルターを使用して、そのドメインを許可対象に追加してください。詳しくは、wordpress.org の apply_filters( ‘allowed_redirect_hosts’, string[] hosts, string hosts, string host ) を参照してください。

ログインページで

このプラグインは、WordPress の機能を活用し、デフォルト設定のままシームレスに動作します。リダイレクトを追加するには、ユーザーをログインページに誘導する際に、URL に redirect_to クエリパラメーターを追加します。ログインに成功すると、プラグインはユーザーをこの URL にリダイレクトします。 Auth0 プラグインの設定ページにある Login redirection URL 設定を使用することもできます。redirect_to パラメーターが指定されていない場合は、この URL がユーザーのリダイレクト先として使用されます。

ウィジェットを使用する

ウィジェットは、認証前にユーザーが表示していたページに自動的にリダイレクトします。これを変更するには、Redirect after login: 設定を使用します。

ショートコードの使用

ショートコードは、認証前にユーザーがいたページと同じページに自動的にリダイレクトします。これを変更するには、redirect_to 属性を使用します。

WordPress のユーザーを Auth0 に移行するにはどうすればよいですか?

現在のバージョンのプラグインでは、ユーザーを Auth0 に自動移行することはできませんが、いくつかの方法があります。
  • このプラグインでは、カスタムデータベース接続を Auth0 へのインポート モードとしてマークするための 2 つのエンドポイントが提供されています。エンドポイントの詳細については、データベースからの自動移行を構成するを参照してください。
  • ユーザーデータを JSON ファイルにエクスポートし、Auth0 に一括インポートするためにアップロードします。移行時に Auth0 が WordPress のパスワードを復号することはできないため、ユーザーは最初に Auth0 を使用してログインする際、パスワードをリセットする必要があります。JSON ファイルの生成方法については、ユーザーの一括インポートを参照してください。次に、Auth0 Import Users エンドポイントを使用してファイルをアップロードする必要があります。
  • このスクリプトと WordPress XML-RPC エンドポイントを使用して、カスタムデータベース接続による移行フローを設定します。移行フローの設定の詳細については、データベースからの自動移行を構成するを参照してください。WordPress XML-RPC エンドポイントの詳細については、wordpress.org の XML-RPC サポートを参照してください。

dict 設定を行うと form_title 設定は無視される

内部的には、このプラグインは dict 設定を使って Auth0 ウィジェットのタイトルを変更します。dict フィールドを設定すると、form_title よりそちらが優先されます。 この場合に form_title を変更するには、dict の JSON に次の属性を追加する必要があります。
{
    "signin": {
        "title": "The desired form title"
    }
}

埋め込みの Auth0 ログインフォームを変更するにはどうすればよいですか?

プラグイン設定ページの Appearance タブには、サイトに埋め込まれたログインフォーム (wp-login/php ページ、ショートコード、またはウィジェット) の見た目や使い勝手を変更できるオプションが多数あります。これらのオプションの詳細については、Configure Login by Auth0 を参照してください。これは、Auth0 でホストされる ページのログインフォームには影響しません。 Advanced タブには “Extra Settings” というフィールドもあり、構成したいすべての設定を含む有効な JSON オブジェクトを指定できます。これにより、Appearance タブで行った変更はすべて上書きされます。使用可能なすべての設定オプションについては、Lock Configuration Options を参照してください。 外部スタイルシートと JS ファイルは、ショートコードやウィジェットでは wp_enqueue_scripts フックを使用し、wp-login.php では login_enqueue_scripts フックを使用して、テーマ内で読み込む必要があります。詳細については、wordpress.org の do_action( 'wp_enqueue_scripts' )wordpress.org の do_action( 'login_enqueue_scripts' ) を参照してください。

セッションの有効期限が短すぎる

Auth0 プラグインはセッションを管理せず、WordPress の設定を使用します。デフォルトでは、ユーザーセッションは 2 日間維持されます。セッションを最長 14 時間有効にしておくには、プラグイン設定の Advanced タブで Remember users session 設定を有効にできます。

リフレッシュトークンを実装するにはどうすればよいですか?

プラグインが使用するログインメソッドに追加パラメーターを実装し、を利用できるようにしました。これを実現するには、auth0_auth_scope フィルターと auth0_user_login アクションを組み合わせて使用します。

WordPress に保存されたユーザープロファイルのデータは、Auth0 のユーザーアカウントに同期されません。

これは現時点でのプラグインの制限ですが、今後のリリースでの対応を検討しています。唯一の例外はユーザーのパスワードです。WordPress でパスワードが変更され、かつ使用しているデータベース接続に設定されたセキュリティポリシーを満たしている場合は、そのパスワードは Auth0 のユーザーにも反映されます。パスワードの強度が不十分な場合に処理を停止できるよう、今後のリリースでエラーメッセージを追加する予定です。

「Social Login with Auth0」から「Login by Auth0」へ移行するにはどうすればよいですか?

これまで Auth0 は、2 つの WordPress プラグインを提供してきました。 この 2 つのプラグインは実質的に同じものですが、Social Login with Auth0 はバージョン 3.7.0 (2018 年 8 月 13 日リリース) 以降は更新されません。Social Login with Auth0 から Login by Auth0 への移行は簡単で、Auth0 や WordPress のデータが失われることもありません。 Social Login with Auth0 から Login by Auth0 に移行すると、表示されるバージョン番号が変わります。そのため、まずはステージング環境または開発サーバーでこの変更をテストしてください (wp-admin でプラグインを更新する場合と同様です) 。また、移行中はログインが機能しない可能性があるため、メンテナンスモード用のプラグインを使用するか、アクセスの少ない時間帯に移行を実施してください。 最も簡単な移行方法は、(S)FTP を使用する方法です。
  1. 管理者として WordPress サイトにログインします。
  2. Login by Auth0 をダウンロード し、ローカルで展開します。
  3. WordPress 管理画面の Plugins 画面で、Social Login with Auth0 プラグインを無効化します。
  4. 移行先のサーバーにログインし、wp-content/plugins に移動します。
  5. 内容をバックアップするため、social-login-with-auth0 フォルダーを plugins フォルダーの外に移動します。
  6. 新しい auth0 プラグインフォルダーを plugins ディレクトリーにアップロードします。
  7. WordPress の Admin > Plugins 画面で、新しい「Login by Auth0」プラグインを有効化します。
FTP 経由でサイトにアクセスできない場合は、WordPress 管理画面から直接この手順を実行することもできます。
  1. 管理者として WordPress サイトにログインします。
  2. Auth0 > Import-Export Settings に移動します。
  3. Export Settings をクリックし、続けて Export をクリックします。
  4. WordPress の Admin > Plugins 画面で、Social Login with Auth0 プラグインを無効化します。
  5. Social Login with Auth0 プラグインを削除し、確認します。
  6. Plugins > Add New に移動し、「Auth0」を検索します。
  7. Login by Auth0 プラグインで (必ず名前を確認してください) 、Install Now をクリックします。
  8. 完了したら、Activate をクリックします。
  9. Auth0 > Settings を確認し、以前の設定がそのまま残っていることを確認します。残っていない場合は、次の手順を実行します。
    1. Auth0 > Import-Export Settings に移動します。
    2. 先ほどエクスポートした設定 JSON を貼り付け、Import をクリックします。
  10. 設定ファイルのエクスポート JSON は完全に削除してください (機密情報が含まれています) 。
これで新しいプラグインで想定どおりに動作するようになり、通常どおり更新も再開されます。

詳細情報