对 Wordpress WP-API 的外部请求 - 基本身份验证
External request to Wordpress WP-API - Basic Authentication
我正在尝试使用我的中间件 (Laravel) 中的 Basic Auth with Guzzle(http 工具)访问我的 Wordpress API。
$username = 'myAdminUserName';
$password = 'myAdminPassword';
$uri = 'https://example.com/wp-json/mysite-api/cleared-action';
$response = $this->guzzle->put(
$uri,
[
'headers' => [
'Authorization' => 'Basic ' . base64_encode( $username . ':' . $password )
],
'body' => [
'user_id' => $wordpressId //passed into this function
]
]
);
然后它会点击在我的 Wordpress 中设置的路由 API
$routes['/mysite-api/cleared-action'] = array(
array(array($this, 'automatedClearing'), WP_JSON_Server::ACCEPT_JSON
| WP_JSON_Server::CREATABLE
| WP_JSON_Server::EDITABLE)
);
然而,就目前而言。它没有到达我的 automatedClearing
端点,看起来像这样
public function automatedClearing() {
global $container;
\Groups_User_Group::create( array('user_id' => 2903, 'group_id' => 13));
$mySiteServices = $container['services'];
$this->$mySiteServices->sendClearedEmail(2903); //2903 = user_id
}
我为用户 ID 使用了硬编码值。
我的呼叫不断收到 200 响应,因此它肯定命中了路由,但没有执行端点。响应基本上只是一个空的。
我的 Wordpress access.log 显示了正在访问的路由,但我的 error.log 没有显示任何内容。顺便说一下,这是一个 laravel Homestead (vagrant) box 击中了 Wordpress vagrant box。
我想知道这是不是因为 WP-API 需要随机数?但我认为 nonce 只在 Wordpress 中需要,而这是一个访问 Wordpress 的外部应用程序。
我非常坚持这一点。非常感谢任何指导
尝试使用 postman 对其进行测试...如果这可以通过邮递员进行,那么您遇到 laravel 或 guzzle
的问题
我正在尝试使用我的中间件 (Laravel) 中的 Basic Auth with Guzzle(http 工具)访问我的 Wordpress API。
$username = 'myAdminUserName';
$password = 'myAdminPassword';
$uri = 'https://example.com/wp-json/mysite-api/cleared-action';
$response = $this->guzzle->put(
$uri,
[
'headers' => [
'Authorization' => 'Basic ' . base64_encode( $username . ':' . $password )
],
'body' => [
'user_id' => $wordpressId //passed into this function
]
]
);
然后它会点击在我的 Wordpress 中设置的路由 API
$routes['/mysite-api/cleared-action'] = array(
array(array($this, 'automatedClearing'), WP_JSON_Server::ACCEPT_JSON
| WP_JSON_Server::CREATABLE
| WP_JSON_Server::EDITABLE)
);
然而,就目前而言。它没有到达我的 automatedClearing
端点,看起来像这样
public function automatedClearing() {
global $container;
\Groups_User_Group::create( array('user_id' => 2903, 'group_id' => 13));
$mySiteServices = $container['services'];
$this->$mySiteServices->sendClearedEmail(2903); //2903 = user_id
}
我为用户 ID 使用了硬编码值。
我的呼叫不断收到 200 响应,因此它肯定命中了路由,但没有执行端点。响应基本上只是一个空的。
我的 Wordpress access.log 显示了正在访问的路由,但我的 error.log 没有显示任何内容。顺便说一下,这是一个 laravel Homestead (vagrant) box 击中了 Wordpress vagrant box。
我想知道这是不是因为 WP-API 需要随机数?但我认为 nonce 只在 Wordpress 中需要,而这是一个访问 Wordpress 的外部应用程序。
我非常坚持这一点。非常感谢任何指导
尝试使用 postman 对其进行测试...如果这可以通过邮递员进行,那么您遇到 laravel 或 guzzle
的问题