Согласно инструкции от одного API, в случае, если запрос возвращает 401 ошибку, то нужно через POST авторизоваться и получить 3 значения Cookies, один из которых меняется с каждым новым запросом и его необходимо передавать дальше в следующий запрос. А второй содержит значение совпадающий с логином для авторизации - его я не очень хочу сохранять в браузера пользователя.
Соответственно Cookies получаем
$result = wp_remote_post( 'example.ru/post' );
if ($result["response"]["code"] == '401')
{
$result = $this->auth();
}
public function auth()
{
$result = wp_remote_post(
'https://login.example.ru/auth',
array(
'body' => array(
'login'=> 'login',
'pwd' => 'password'
)
)
);
$arCookies = wp_remote_retrieve_cookies($result);
И получаем:
$arCookies = Array
(
[0] => WP_Http_Cookie Object
(
[name] => cookieThatChangesOften
[value] => 7i-qO4Wio3X_aBzCgW-nhQXFfuQh8B5akVF4ltoAEkia6DodJC36Q1XnqicT9wXKqzmlIwR46Io2dOQBUau0m1NLluHg5MS-6hOrib3h6q2hTpIy6wXvpbIcKUp8_Lj4
[expires] =>
[path] => /
[domain] => example.ru
[port] =>
[host_only] =>
)
[1] => WP_Http_Cookie Object
(
[name] => cookieThatChangesRarerely
[value] => 7285692$0GNfhw0qtRiVva6vjZy2yD6k4Y66U23or6kE95ltl-Ww1Zi5nWX-IW3GSsKEPh0-ul32BqS7pPtExXANrSSMk8OX9NjJYAPjdUZQ7xUEcQPbZ5x5Em0WyZixDdt1VypI2I-cw6Scuimp1P--RgvTBocmmnz0fwqDTDQDtvlt1-w
[expires] =>
[path] => /
[domain] => example.ru
[port] =>
[host_only] =>
)
[2] => WP_Http_Cookie Object
(
[name] => cookieLikeLogin
[value] => login
[expires] => 1682084968
[path] => /
[domain] => example.ru
[port] =>
[host_only] =>
)
)
Как лучше сделать, чтобы не передать логин пользователю, чтобы не создавать в БД новую таблицу для этих трех значений. Думал сохранить в файл, но переживаю, вдруг как-то смогут получить к нему доступ и получить мой логин.