Я пишу вспомогательные функции в laravel, которые вызывают API, который работает на сессии cookie
в основном, чтобы сделать что-либо, мне нужно сначала вызвать API входа в систему, который дает куки сессии, которые мне нужно сохранить и отправить в последующих запросах.
Я попытался с помощью guzzle 6, отправив запрос в API для входа в систему и получив куки в банке с печеньем, затем я отправил банку с другими запросами, вот функция входа, чтобы получить куки
public function loginCookie(array $credentials)
{
$client = new Client(["cookies"=>true]);
$response = $client->request(
'POST',
"https://origin_url/selectLoginAction.json",
[
'form_params' => $credentials,
'headers' => [
"Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding" => "gzip, deflate, br",
"Accept-Language" => "en-GB,en-US;q=0.9,en;q=0.8",
"Cache-Control" => "no-cache",
"Connection" => "keep-alive",
"Origin" => "origin_url",
"Referer" => "https://origi_nurl/selectLoginMain",
"Upgrade-Insecure-Requests" => "1",
"User-Agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36"
]
]
);
// dd($response);
//get the cookie by name
$cookieconf =$client->getConfig('cookies');
$cookie =$cookieconf->toArray();
$cookieArray = [];
$cookieString = "";
//for creating a cookie jar in other request we need array in key value form
foreach ($cookie as $key => $value) {
if($value["Name"]==="JSESSIONID"||$value["Name"]=="BNES_JSESSIONID"){
$cookieString .= $value["Name"]."=".$value["Value"]."; ";
}
$cookieArray[$value["Name"]]=$value["Value"];
}
return $cookieArray;
}
Я получаю из этого банку cookie и массив пар значений ключа cookie, я пытался поместить эту банку в дополнительные объекты и запросы клиентов, но она не работает,