У меня проблема с базовой аутентификацией.
Попытка отправить запрос GET с помощью Postman (chrome plugin), используя следующий URL: http: // _ MY_WEBSITE_URL_ / wp-json / wp / v2 / users / 3
Поле имени пользователя и пароля заполняется учетными данными пользователя администратора сайта.
Ошибка, которую я получаю:
{ "code": "rest_user_cannot_view", "message": "Sorry, you cannot view this resource.", "data": { "status": 401 } }
Я попробовал базовую аутентификацию с помощью wp_remote_request с другого сайта и с CURL тоже, но результаты одинаковы каждый раз.
Пользователь с id 3 существует, я проверил его. Если я хочу перечислить всех пользователей, я получаю только тех, у кого есть сообщения.
Я активировал необходимые плагины: WP REST API , JSON Basic Authentication .
Моя версия WordPress: 4.4.2
Наконец, я понял решение. Мне пришлось добавить некоторые новые параметры вручную в файл .htaccess , плагин не сделал этого.
Код:
# BEGIN WP BASIC Auth <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /PluginTest/ RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1] </IfModule> # END WP BASIC Auth
Я думаю, проблема заключается не в том, чтобы получать данные пользователя с сервера, но этот код ошибки для вашей проверки подлинности имеет эту возможность пользователя или Роль не может быть администратором
для детального просмотра
WP-содержание / плагины / отдых-апи / Библиотека / оконечных / класс-сор-отдых-пользователи-controller.php
public function get_item_permissions_check( $request ) { $id = (int) $request['id']; $user = get_userdata( $id ); $types = get_post_types( array( 'public' => true ), 'names' ); if ( empty( $id ) || empty( $user->ID ) ) { return new WP_Error( 'rest_user_invalid_id', __( 'Invalid resource id.' ), array( 'status' => 404 ) ); } if ( get_current_user_id() === $id ) { return true; } if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) { return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you cannot view this resource with edit context.' ), array( 'status' => rest_authorization_required_code() ) ); } else if ( ! count_user_posts( $id, $types ) && ! current_user_can( 'edit_user', $id ) && ! current_user_can( 'list_users' ) ) { return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you cannot view this resource.' ), array( 'status' => rest_authorization_required_code() ) ); } return true; }