WordPress | 2024年08月18日15:54:24
WordPress的“/wp-json/wp/v2/users”是REST API的用户信息,可显示站点管理员的用户名(见下图),为了安全起见,隐藏或限制REST API的访问,以防止被获取管理员用户名。
一、WordPress后台 > 外观 > 主题文件编辑器 > 点击“模板函数” > 将代码(按网站用户数选择代码)粘贴到“模板函数”文件中 > 最后“更新文件”
//禁止游客访问REST API的用户信息 add_filter('rest_authentication_errors', function($result) { if (!empty($result)) { return $result; } if (!is_user_logged_in()) { return new WP_Error('rest_not_logged_in', 'You are not currently logged in.', array('status' => 401)); } return $result; });
//只限管理员访问REST API的用户信息 function restrict_rest_api_users_to_admin( $response, $handler, $request ) { if ( ! current_user_can( 'administrator' ) ) { return new WP_Error( 'rest_forbidden', __( 'You cannot view this resource.' ), array( 'status' => rest_authorization_required_code() ) ); } return $response; } add_filter( 'rest_pre_dispatch', 'restrict_rest_api_users_to_admin', 10, 3 );
//只隐藏REST API用户信息的管理员用户名 function hide_user_slug_and_link_in_rest_api( $response, $user, $request ) { if ( isset( $response->data['slug'] ) ) { unset( $response->data['slug'] ); } if ( isset( $response->data['link'] ) ) { unset( $response->data['link'] ); } return $response; } add_filter( 'rest_prepare_user', 'hide_user_slug_and_link_in_rest_api', 10, 3 );
二、游客身份访问REST API的用户信息后显示如下图。
本文标题:WordPress禁止游客访问REST API的用户信息 隐藏管理员和用户名
本文链接:https://www.bufanz.com/post/66.html
版权声明:本文章是 不凡博客 的原创文章,未经允许请勿转载本文章!
相关文章