You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用WordPress REST API获取用户列表时遭遇401未授权错误

调用WordPress REST API获取用户列表时遭遇401未授权错误

我尝试调用https://www.website.com/wp-json/wp/v2/users?context=edit接口获取用户列表,收到以下错误:

Error making API request: 401 Client Error: Unauthorized for url: https://www.website.com/wp-json/wp/v2/users?context=edit

已完成的排查动作:

  • 确认凭据输入正确,使用的是管理员权限账号
  • 已创建5个不同的应用密码尝试认证
  • 已替换.htaccess文件为以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
  • 已停用WordFence及所有插件
  • 另有4个技术配置完全一致的站点可正常认证,仅该站点异常

进一步排查建议

  • 验证HTTP_AUTHORIZATION头是否被服务器拦截:部分主机商会禁用或修改该请求头,可在主题functions.php中添加代码验证:
add_action('init', function() {
    $auth_header = $_SERVER['HTTP_AUTHORIZATION'] ?? 'Not present';
    error_log('HTTP_AUTHORIZATION: ' . $auth_header);
});

调用API后查看服务器错误日志,确认头信息是否正常传递。若未获取到,联系主机商开启该头的支持。

  • 检查应用密码的使用格式:确保请求时采用Basic [base64编码的"用户名:应用密码"]格式,用curl测试示例:
curl -u "管理员用户名:你的应用密码" https://www.website.com/wp-json/wp/v2/users?context=edit

也可手动编码后在请求头携带:

Authorization: Basic YWRtaW51c2VyOmFwcC1wYXNzd29yZA==
  • 排查SSL重定向导致的头丢失:若站点启用了HTTPS,确认服务器是否在HTTP转HTTPS的重定向过程中丢弃了认证头,可直接发起HTTPS请求避免重定向环节。

  • 开启WordPress调试日志:在wp-config.php中添加以下代码,调用API后查看wp-content/debug.log获取更详细的错误信息:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
  • 检查用户账号状态:确认该管理员账号未被锁定,若启用了两步验证,需确保应用密码是在两步验证开启后创建的;同时检查是否有自定义权限规则覆盖了默认管理员权限。

  • 对比正常站点的服务器配置:重点对比php.ini中的allow_url_fopen、mod_rewrite启用状态,以及php_auth相关配置是否被禁用。

内容的提问来源于stack exchange,提问作者Kasper Toft Braun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 21:26:12