使用WordPress应用密码发起认证请求时遭遇401错误(incorrect_password)
问题分析与解决思路
请求返回401错误明确指向应用密码无效,结合你已排除插件影响、Postman测试结果一致、Kinsta托管环境这些信息,从以下几个方向排查解决:
1. 应用密码的生成与使用规范
- 确认应用密码是针对目标WordPress用户在后台正确生成的:需进入用户个人资料页(
用户 > 个人资料)底部的“应用密码”区域生成,生成后完整复制密码(密码格式为4组4位字符,带空格或去掉空格都可被WordPress识别,注意不要遗漏字符)。 - 确保使用的是用户的登录用户名,而非昵称或显示名称。
2. Kinsta环境的特殊配置检查
Kinsta的Nginx环境可能对请求头有特殊处理:
- 确认站点的WP_HOME和WP_SITEURL均为HTTPS协议,Kinsta默认强制HTTPS,HTTP请求的Authorization头可能被拦截丢失。
- 检查Kinsta站点设置中是否开启了WAF等安全规则,可临时关闭测试是否是规则拦截了请求。
3. 代码错误修正
你的代码存在两个关键问题,直接影响认证和请求解析:
- 声明了
Content-Type: application/json,但请求体是PHP数组,wp_remote_post会自动将其转为application/x-www-form-urlencoded格式,导致Content-Type不匹配,WordPress无法正确处理。 - 错误处理逻辑缺失HTTP状态码判断,即使返回401也会返回成功提示。
修正后的代码:
$auth = base64_encode($cc_agent_un . ':' . $cc_agent_ap); $wp_request_headers = array( 'Authorization' => 'Basic ' . $auth, 'Content-Type' => 'application/json' ); // 将请求体转为JSON字符串,匹配Content-Type $body = wp_json_encode(array( 'title' => $blogTitle, 'content' => $blogContent, 'status' => 'publish' )); $result = wp_remote_post($url, array( 'headers' => $wp_request_headers, 'body' => $body, 'method' => 'POST', 'data_format' => 'body' )); // 完善错误处理,包含HTTP状态码校验 if (is_wp_error($result)) { return array( 'status' => 'Blog Post Failed: ' . $result->get_error_message() ); } else { $response_code = wp_remote_retrieve_response_code($result); if ($response_code === 201 || $response_code === 200) { return array( 'status' => 'Blog Has Been Successfully Posted' ); } else { $response_body = json_decode(wp_remote_retrieve_body($result), true); $error_msg = isset($response_body['message']) ? $response_body['message'] : 'Unknown error'; return array( 'status' => 'Blog Post Failed: ' . $error_msg . ' (Code: ' . $response_code . ')' ); } }
4. Postman测试的正确方式
在Postman中测试时需注意:
- 请求方法为POST,URL使用正确的REST API端点(如
https://your-site.com/wp-json/wp/v2/posts)。 - Authorization选择
Basic Auth类型,直接输入用户名和应用密码,让Postman自动处理Base64编码,避免手动编码时出现字符错误。 - Body选择
raw,格式设置为JSON,输入符合格式的请求体:
{ "title": "测试标题", "content": "测试内容", "status": "publish" }
内容的提问来源于stack exchange,提问作者Michael Christopher Martire
相关产品推荐
相关产品推荐

