REST API基本身份验证不起作用

时间:2018-08-15 作者:janw

我已经设置了一个用于快速测试站点的基本身份验证。

$headers = array (
    \'Authorization\' => \'Basic \' . base64_encode( \'admin\' . \':\' . \'Str0nGP@$$w0rd\' ),
);
$url = rest_url( \'wp/v2/posts/1\' );

$data = array(
    \'title\' => \'Hello Gaia\'
);

$response = wp_remote_post( $url, array (
    \'method\'  => \'POST\',
    \'headers\' => $headers,
    \'body\'    =>  $data
) );

var_dump($response[\'body\']);
几乎就是这个例子official docs 提供但我总是会出错。

{"code":"rest_cannot_edit","message":"Sorry, you are not allowed to edit this post.","data":{"status":401}}
所以我在不同的服务器(apache和nginx)上尝试了一个不同的站点(插件最少的站点,二十个*主题)<同样的事情。

我做错什么了吗?基本身份验证是否仍受支持或已过时<我知道还有其他的身份验证方法<我不是在问这个问题。

我也想知道为什么basic auth不起作用。

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

REST API不支持开箱即用的基本身份验证,您需要一个插件。这个documentation 指向this one, 伴随此警告:

请注意,此插件需要在每次请求时发送用户名和密码,并且只能用于开发和测试,即不能在生产环境中使用。

结束

相关推荐

Authentication/API Questions

我们正在尝试使用S2Member来管理我们的WP站点和我们正在启动的Flash程序的成员资格。我们希望在用户登录并保持登录状态时使用S2Member对其进行身份验证。问题:Java层需要知道哪个用户登录到Wordpress(如果有的话),以便它可以将正确的数据返回到flash层。建议的解决方案:Wordpress的cookie也应该包含在Flash到Java的请求中。Java可以使用这些cookie来查询Wordpress DB以获取用户ID。我们需要知道的是:1。是否可以从数据库或文件系统获取带有coo