Почему не устанавливаются cookie в браузере при отправке запроса через guzzle?

обрый день!

Необходимо сделать запрос одного сайта к другому без перенаправления для авторизации и без получения ответа. Первый сайт - wordpress, и в одной из его функцией делается такой запрос.
URL имеет следующий адрес:
example.dev/api/key/XXXXXX.

При переходе по этой ссылке в браузере - авторизация проходит - все ок.
Делаю так, например, через guzzle, и не работает, при переходе на страницу example.dev, авторизации нет.
Рассмотрю любые разумные варианты.
$client = new \GuzzleHttp\Client();
            $jar = new \GuzzleHttp\Cookie\CookieJar();

            $request = $client->get($url, array(), array(
                'timeout' => 20,
                'connect_timeout' => 1.5,
                'cookies' => $jar,
                'allow_redirects' => true,
                'decode_content' => true
            ));

            $req = $client->request('get', $url)->getBody()->getContents();
            $req = $client->request('get', $url)->getHeaders();
            echo "<pre>";
            print_r($req);
            exit(1);

авторизация не проходит, не работает.

Делаю вывод ответа запроса, куки вроде как есть:
[Set-Cookie] => Array
(
[0] => XSRF-TOKEN=XXX; expires=Tue, 05-Dec-2017 06:05:27 GMT; Max-Age=1209599; path=/
[1] => xxx_session=XXX; expires=Tue, 05-Dec-2017 06:05:27 GMT; Max-Age=1209599; path=/; HttpOnly
)


Что тут не так ?
Нужно добавить обработку cookies ?

Спасибо
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
Укажите cookies: true при инициализации клиента, чтобы расшарить куки на все запросы в этом клиенте.

docs.guzzlephp.org/en/stable/quickstart.html#cookies

// EDIT

Если Вы хотите получить через Guzzle куки, и потом их использовать на своем сервере - забудьте эту идею :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы