WordPress REST API Basic Authentication

Я работаю над проектом, который требует некоторой интеграции между различными экземплярами WordPress, и я нахожусь в процессе создания плагина WordPress, который обеспечит эту функциональность через API REST.

Я включил плагин WP-API и плагин Basic Authentication и могу делать запросы, которые не требуют аутентификации, но когда я делаю запрос, который требует аутентификации, такой как добавление новой страницы, меня встречают 401 - Sorry, you are not allowed to create new posts.

Я понимаю, что базовая аутентификация не подходит для производственных нужд, но хотела бы, чтобы она работала должным образом для разработки, и я крутил свои колеса из-за этой, казалось бы, небольшой проблемы. Я прекрасно умею делать эти запросы, используя Postman, поэтому что-то не так с моей реализацией. Вот код, о котором идет речь:

function add_new_page($post) {

// Credentials for basic authentication.
$username = 'user';
$password = 'password';

// Request headers.
$headers = array(
'Authorization' => 'Basic ' . base64_encode( $username . ':' . $password ),
'Content-Type' => 'application/json'
);

// Request URL.
$url = "http://localhost/wp-json/wp/v2/pages";

// Request body.
$body = array(
'slug' => $post->post_name,
'status' => $post->post_status,
'type' => $post->post_type,
'title' => $post->post_title,
'content' => $post->post_content,
'excerpt' => $post->post_excerpt,
);

$body_json = json_encode($body);

// Request arguments.
$args = array(
'method' => 'POST',
'blocking'    => true,
'headers'     => $headers,
'cookies'     => array(),
'body'        => $body_json,
);

// Fire request.
$response = wp_remote_request($url, $args);

// Handle response.
if (is_wp_error($response)) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
$response_body = json_decode(wp_remote_retrieve_body($response));
// Display response body.
echo '<pre>';
print_r($response_body);
echo '</pre>';
}
// Exit so we can read the response.
exit();
}

Я был бы очень признателен за любые идеи, которые кто-то там может предоставить.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]