Как хранить куки и отправлять их в дальнейших запросах, используя php guzzle - PullRequest
0 голосов
/ 23 мая 2019

Я пишу вспомогательные функции в 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, я пытался поместить эту банку в дополнительные объекты и запросы клиентов, но она не работает,

...