我遇到基本身份验证问题。
尝试使用以下网址发送带Postman(chrome插件)的GET请求: 的 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,但结果每次都相同。
身份3的用户存在,我已经检查过了。如果我想列出所有用户,我只会获得创建帖子的人。
我已激活所需的插件: WP REST API , JSON基本身份验证。
我的wordpress版本: 4.4.2
答案 0 :(得分:2)
我认为问题不是从服务器获取用户数据,但此错误代码是针对您的身份验证问题 具有此用户功能或角色可能不是管理员
详情视图
可湿性粉剂内容/插件/ REST的API / LIB /端点/类-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;
}
答案 1 :(得分:2)
最后,我找到了解决方案。我必须手动将一些新选项添加到我的 .htaccess 文件中,该插件无法实现。
代码:
<EditText
android:id="@+id/imageDescriptionTextEdit"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:hint="Enter a description of this picture.."
android:textSize="15sp"
android:textColorHint="#E9E9E9"
android:textColor="#ffffff"
android:maxEms="26"
android:imeOptions="actionDone"
android:typeface="monospace"
android:minEms="3"
android:singleLine="true"
fontPath="fonts/VarelaRound-Regular.ttf"
tools:ignore="MissingPrefix"/>
答案 2 :(得分:0)
对于所有遇到这些错误的用户,在激活JWT后都必须删除标头中的基本身份验证授权,并在所有情况下(get和post)将customer_key和customer_secret发送为查询参数。这看似奇怪又不安全,但对我有用。