我正在使用Guzzle登录我的API网站,当我使用正确的凭据登录时,会收到一个包含RefreshToken的cookie,以在下一次调用中发送它。这是我的简单(而且工作良好)的代码:
$client = new Client(array(
'cookies' => true
));
$response = $client->request('POST', 'http://myapi.com/login', [
'timeout' => 30,
'form_params' => [
'email' => $request->get('email'),
'password' => $request->get('password'),
]
]);
我收到正确的响应并带有一个 cookie,可以使用以下方法查看 cookie:
$newCookies = $response->getHeader('set-cookie');
现在,我需要在下一次调用中使用这个cookie,我知道Guzzle可以为我保存cookie,并使用“CookieJar”或“SessionCookieJar”在下一次调用中自动(或不自动)发送它。我已经尝试使用它,但是我没有在‘jar’中看到cookie,这里是我所做的:
$cookieJar = new SessionCookieJar('SESSION_STORAGE', true);
$client = new Client([
'cookies' => $cookieJar
]);
$response = $client->request ....
但是,当我从POST请求中获取到cookie时,我只能通过以下方式看到它:
$newCookies = $response->getHeader('set-cookie');
它不在cookieJar中,所以它不会在下一次调用中发送。我在这里错过了什么?
谢谢!