401 Unauthorized with Wordpress Basic Auth 插件

401 Unauthorized with Wordpress Basic Auth Plugin

我安装了Wordpress团队制作的插件: https://github.com/WP-API/Basic-Auth

我正在使用 Wordpress 4.9.4 发出此请求:

GET http://somehostname.com/index.php?rest_route=%2Fwp%2Fv2%2Fposts&per_page=100&page=2&context=edit HTTP/1.1
Host: somehostname.com
Authorization: Basic [****base64encoded username+":"+pass *******]
Accept-Encoding: gzip, deflate
User-Agent: [some user agent name]

回复:

HTTP/1.1 401 Unauthorized
Date: Tue, 13 Feb 2018 14:26:12 GMT
Server: Apache
X-Powered-By: PHP/7.1.12
X-Robots-Tag: noindex
Link: <http://somehostname.com/wp-json/>; rel="https://api.w.org/"
X-Content-Type-Options: nosniff
Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages
Access-Control-Allow-Headers: Authorization, Content-Type
Vary: Accept-Encoding,User-Agent
Content-Length: 127
Content-Type: application/json; charset=UTF-8

{"code":"rest_forbidden_context","message":"Sorry, you are not allowed to edit posts in this post type.","data":{"status":401}}

我从你的问题中推断这不应该发生。您期待一些不属于 4xx 类型的响应代码。

从标题:“401 Unauthorized with Wordpress Basic Auth Plugin”,我也取得了飞跃,但您可能认为该插件不允许您访问 任何意义。

因此,考虑到这一点,我想指出错误数据告诉您一些非常准确的信息:不允许 user 编辑帖子那种。 用户的凭据无效相同。

{
    "code": "rest_forbidden_context",
    "message": "Sorry, you are not allowed to edit posts in this post type.",
    "data": {
        "status": 401
    }
}

尝试确认您以 [****base64encoded username+":"+pass *******] 格式提供凭据的用户是 admin/author/editor(或其他角色),该用户有权编辑您尝试编辑的帖子类型访问。

编辑:请参阅 WP-API 的 this line,该错误可能源自

我刚刚按照这条评论的建议修复了这个问题: Fix for basic OAuth 不确定此修复是否有任何副作用?

请在您的 htaccess 文件中添加以下代码。

RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

如果您现在以 wordpress 管理员身份登录,它将不允许您创建 post,因此请先从 wordpress 管理员注销,然后再尝试发出请求。

这两个方案解决了我的问题。

我按照这个非常简短的建议解决了身份验证问题

https://github.com/WordPress/application-passwords/wiki/Basic-Authorization-Header----Missing

我还必须将 wordpress 块移到 htaccess 的顶部

我已经通过以下步骤解决了这个问题:

  1. 验证,如果安装了password protected插件,那么
  2. 转到受密码保护的插件设置
  3. 勾选'Allow REST API Access'
  4. 保存更改