Auth0 Wordpressプラグインのログイン時間を延長する
WordPressプラグインは、アクションとフィルターを使用して実行時の特定の時点でカスタムコードを実行することで、特定の要件に合わせて拡張できます。このドキュメントでは、Login by Auth0プラグインの既存のフックについて説明します。このプラグインをさらに統合する上で役立つ、新しいフィルターとアクションをレビューして承認します。詳細については、プラグインのGitHubリポジトリのReadMeでContributing(貢献)セクションをお読みください。
WordPressアクション
WordPressアクションは、処理中の特定の時点でカスタムコードを実行します。WordPressアクションの詳細については、WordPressプラグインハンドブック: wordpress.orgのアクションをお読みください。GitHubリポジトリの例
auth0_before_login
このアクションは、ユーザーが正常に認証された後、WordPressにログインする前にWP_Auth0_LoginManager
で実行されます。必要に応じて、wp_die()
を使用するか例外をスローして、ログインプロセスを停止するために使用できます。GitHubリポジトリで例を見る
auth0_user_login
このアクションは、ユーザーが正常に認証され、WordPressにログインした後にWP_Auth0_LoginManager
で実行されます。特定のメタ値を設定したり、通知を送信したり、他のサービスにpingを送信したりするために使用できます。GitHubリポジトリで例を見る
wpa0_user_created
このアクションは、WordPressユーザーが正常に作成された直後にWP_Auth0_Users
で実行されます。ユーザーの値を変更したり、追加のユーザーメタを設定したり、他の新しいユーザーアクションをトリガーしたりするために使用できます。GitHubリポジトリで例を見る
フィルター
WordPress のフィルターも、処理中に特定の時点でカスタムコードを実行しますが、常に渡されたのと同じタイプの変更された値を返します。フィルターの詳細については、WordPressプラグインハンドブック: wordpress.orgのフィルターをお読みください。GitHubリポジトリの例
auth0_create_user_data
このフィルターは、受信したAuth0ユーザーからWordPressに新しいユーザーを作成する際、ユーザーデータ配列を変更するために使用できます。2つのパラメーターを受け取ります。
$user_data
は、Auth0プロファイルから解析されたユーザーデータです。$userinfo
は、Auth0ユーザープロファイルです。
このフィルターは常に、コアのwp_insert_user()
関数に渡されるデータの配列を返します。GitHubリポジトリで例を見る
auth0_get_wp_user
このフィルターは、プラグインがログインする関連ユーザーを見つけた後に呼び出されます(auth0 user_id
に基づく)。このフィルターは、カスタム一致ルール(常にメールで一致させるなど)でデフォルトの動作を上書きするために使用されます。GitHubリポジトリで例を見る
フィルターがnullを返す場合は、メールで検索します。詳細については、WordPressとの統合をお読みください。
auth0_verify_email_page
このフィルターはWP_Auth0_Email_Verification
で実行され、ログインしているユーザーがサイトにアクセスする前にメールを確認する必要がある場合にレンダリングされるHTMLを変更します。このHTMLはwp_die()
に渡され、表示される前に変更されることに注意してください(詳細については、コアの_default_wp_die_handler()
定義を参照してください)。GitHubリポジトリで例を見る
auth0_get_auto_login_connection
このフィルターはWP_Auth0_LoginManager
で使用され、自動ログインプロセスに使用される接続を変更します。wp-adminの設定が取得され、このフィルターに渡されます。GitHubリポジトリで例を見る
wp_auth0_get_option
このフィルターは、オプション取得関数とメソッドによって出力値を変更するために使用されます。GitHubリポジトリで例を見る
auth0_migration_ws_authenticated
このフィルターは、WP_Auth0_Routes
で使用され、ユーザー移行中にJSONエンコードされてAuth0に返されるWP_Userオブジェクトを変更します。GitHubリポジトリで例を見る
wpa0_should_create_user
このフィルターは、ユーザーを作成するかどうかを決定するときにWP_Auth0_Users
で使用されます。渡される初期値はTRUE
です。何らかの理由でFALSE
が返された場合、登録は拒否され、登録ユーザーにはエラーメッセージ(WP_Auth0_UsersRepo::create()
)が表示されます。GitHubリポジトリで例を見る
auth0_login_css
このフィルターは、ログインウィジェット自体を含むログインページのCSSを変更するために使用されます。このフィルターは、wp-admin設定ページからCSSが取得される前に実行されます。GitHubリポジトリで例を見る
auth0_login_form_tpl
Auth0ログインフォームに使用されるテンプレートをフィルターします。これは、wp-content/plugins/auth0/templates/auth0-login-form.php
にあるものを置き換えるHTMLを含むファイルへのパスを返します。標準のロック開始JSは、ログインフォームをインスタンス化するためにauth0-login-form
のID属性を検索するため、これが存在することを確認するか、wp-content/plugins/auth0/assets/js/lock-init.js
ファイルを独自のものに置き換えます。GitHubリポジトリで例を見ることができます。
auth0_settings_fields
このフィルターは、既存のフォームフィールドを変更したり、新しいフィールドを追加したりするために使用されます。これにより、変更または追加が反映された変更された$options
配列が返されます。以下に示すように、新しいフィールドにはフィールドコールバックが必要です。GitHubリポジトリで例を見ることができます。
auth0_auth_scope
このフィルターを使用すると、開発者はログイン時に要求されたスコープを追加または変更できます。これを使用して、カスタムクレームを追加したり、更新トークンを要求したりできます。GitHubリポジトリで例を見ることができます。
auth0_nonce_cookie_name
このフィルターを使用して、nonce検証に使用されるCookie名を変更します。例については、以下のauth0_state_cookie_name
フィルターを参照してください。GitHubリポジトリで例を見ることができます。
auth0_state_cookie_name
このフィルターを使用して、状態パラメーター値に使用されるCookie名を変更します。これにより、プレフィックスまたはサフィックスを追加したり、文字列全体を置き換えたりできます。GitHubリポジトリで例を見る状態パラメーターの詳細については、OAuth 2.0状態パラメーターを使って攻撃を防ぎ、ユーザーをリダイレクトするをお読みください。変更を加える場合は、必ず有効な文字を使用してください。
<cookie-name>には、制御文字(CTL)、スペース、タブを除く任意のUS-ASCII文字を使用できます。また、次のような区切り文字を含めることはできません。( ) < > @ , ; :\ " / ?= { }.
Set-Cookie
HTTP応答ヘッダーの詳細については、MDN Web DocsのSet-Cookieを参照してください。
auth0_settings_constant_prefix
このフィルターを使用して、プラグイン設定をオーバーライドするために使用される定数のプレフィックスを変更します。このフィルターは、Auth0プラグインが読み込まれる前に実行する必要があるため、MUプラグインに配置する必要があることに注意してください。GitHubリポジトリで例を見ることができます。MUプラグインの詳細については、wordpress.orgのMust Use Pluginsをお読みください。
auth0_authorize_url_params
このフィルターを使用すると、開発者は必要に応じて/authorize
エンドポイントパラメーターを調整できます。この関数は、URLパラメーターの辞書型配列を返す必要があります。これらのパラメーターの使用方法の詳細については、認証APIエクスプローラー: ログインを参照してください。GitHubリポジトリで例を見ることができます。
auth0_authorize_url
このフィルターを使用すると、開発者は使用前に完全な/authorize
URLを調整できます。この関数は、有効なURL文字列を返す必要があります。このURLの使用方法の詳細については、認証APIエクスプローラー: ログインを参照してください。GitHubリポジトリで例を見ることができます。
auth0_die_on_login_output
このフィルターを使用すると、ログイン中にエラーが発生した場合に、wp_die()
に渡されるHTMLコンテンツを変更または置換できます。このフィルターは、メールの内容の検証には影響しません(auth0_verify_email_pageを参照)。GitHubリポジトリで例を見ることができます。
auth0_coo_auth0js_url
このフィルターを使用すると、COOURLフォールバックページを読み込むときに、Auth0.jsのデフォルトCDNをオーバーライドできます。
auth0_slo_return_to
このフィルターを使用すると、Auth0からログアウトするときにデフォルトのreturnTo
URLをオーバーライドできます。GitHubリポジトリで例を見ることができます。
auth0_logout_url
このフィルターを使用すると、 Auth0ログアウトURLをオーバーライドできます。この使用方法の詳細については、ログアウトを参照してください。GitHubリポジトリで例を見ることができます。
auth0_use_management_api_for_userinfo
このフィルターは、暗黙的ログインフローを使用していない場合に、Management APIから取得したユーザープロファイルデータを取得するかどうかを決定します。APIを使用する場合はブール値true
(デフォルト)を返し、IDトークンを使用する場合はfalse
を返します。GitHubリポジトリで例を見ることができます。
auth0_lock_options
このフィルターを使用すると、Features(機能) > Universal Login Page(ユニバーサルログインページ)がオフになっている場合に、ショートコード、ウィジェット、および wp-login.php ページで使用される埋め込みロック ログイン フォームのオプションを変更できます。GitHubリポジトリで例を見ることができます。
auth0_jwt_leeway
このフィルターを使用すると、IDトークンの検証に使用される余裕時間を調整でき、秒数を整数として返す必要があります。GitHubリポジトリで例を見ることができます。
auth0_jwt_max_age
このフィルターを使用すると、authorizeURLで送信されるmax_age
URLパラメーターを調整できます。GitHubリポジトリで例を見ることができます。
auth0_authorize_state
このフィルターを使用すると、エンコードされてログインに使用される前に状態データをフィルターできます。このデータは、ログインが成功した後に検証され、そのまま提供されます。GitHubリポジトリで例を見ることができます。
ユースケース
GitHubリポジトリで、フィルターを使用したアクションの使用例を見ることができます