diff --git a/class-two-factor-core.php b/class-two-factor-core.php index 504eda51..11ccf767 100644 --- a/class-two-factor-core.php +++ b/class-two-factor-core.php @@ -769,14 +769,27 @@ public static function filter_authenticate_block_cookies( $user ) { } /** - * If the current user can login via API requests such as XML-RPC and REST. + * If the user can login via API requests such as XML-RPC and REST. + * + * Only logins with application passwords are permitted by default. * * @param integer $user_id User ID. * * @return boolean */ public static function is_user_api_login_enabled( $user_id ) { - return (bool) apply_filters( 'two_factor_user_api_login_enable', (bool) did_action( 'application_password_did_authenticate' ), $user_id ); + /** + * Allow or prevent logins without two-factor during + * API requests such as XML-RPC and REST. + * + * @param boolean $enabled Whether the user can login via API requests. + * @param integer $user_id User ID. + */ + return (bool) apply_filters( + 'two_factor_user_api_login_enable', + (bool) did_action( 'application_password_did_authenticate' ), + $user_id + ); } /** @@ -1943,6 +1956,12 @@ private static function render_user_providers_form( $user, $providers ) {

+ +

+ +

+ + diff --git a/readme.txt b/readme.txt index 34310ae7..ab1725cd 100644 --- a/readme.txt +++ b/readme.txt @@ -28,6 +28,7 @@ Here is a list of action and filter hooks provided by the plugin: - `two_factor_providers_for_user` filter overrides the available two-factor providers for a specific user. Array values are instances of provider classes and the user object `WP_User` is available as the second argument. - `two_factor_enabled_providers_for_user` filter overrides the list of two-factor providers enabled for a user. First argument is an array of enabled provider classnames as values, the second argument is the user ID. - `two_factor_user_authenticated` action which receives the logged in `WP_User` object as the first argument for determining the logged in user right after the authentication workflow. +- `two_factor_user_api_login_enable` filter restricts authentication for REST API and XML-RPC to application passwords only. Provides the user ID as the second argument. - `two_factor_email_token_ttl` filter overrides the time interval in seconds that an email token is considered after generation. Accepts the time in seconds as the first argument and the ID of the `WP_User` object being authenticated. - `two_factor_email_token_length` filter overrides the default 8 character count for email tokens. - `two_factor_backup_code_length` filter overrides the default 8 character count for backup codes. Providers the `WP_User` of the associated user as the second argument.