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 的顶部
我已经通过以下步骤解决了这个问题:
- 验证,如果安装了
password protected
插件,那么
- 转到受密码保护的插件设置
- 勾选'Allow REST API Access'
- 保存更改
我安装了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 的顶部
我已经通过以下步骤解决了这个问题:
- 验证,如果安装了
password protected
插件,那么 - 转到受密码保护的插件设置
- 勾选'Allow REST API Access'
- 保存更改