CURL e PHP - Mantendo sessão ativa com cookies

As vezes você precisa fazer diversas requisições do seu backend mantendo a sessão ativa, caso necessite fazer uma autenticação, por exemplo, ou até mesmo salvar cookies para utilizar futuramente. Com o CURL isto é bem simples, basta utilizar 2 parâmetros que iremos mostra a seguir.

Criando cookie/sessão

Para criar a sessão ou o cookie, na primeira requisição deve ser setado o parâmetro CURLOPT_COOKIEJAR, onde serão salvos os cookies gerados pela URL requisitada. Exemplo:

<?php

$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEJAR, '/tmp/cookiefile');
curl_setopt($curl, CURLOPT_URL, 'https://minha.url/login');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, '[email protected]&pass=123123');

curl_exec ($curl);

Utilizando a função curl_setopt adicionamos a opção CURLOPT_COOKIEJAR e informamos o arquivo em que este cookie será salvo. Por questões de segurança, é importante criar o arquivo na pasta /tmp, de forma temporária

Lendo cookie/sessão

Nas requisições seguintes, em que devemos ter a sessão que foi criada sendo utilizada, informamos para o CURL que utilize o arquivo temporário criado anteriormente, para isto utilizamos o seguinte exemplo:

<?php

$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIEFILE, '/tmp/cookiefile');
curl_setopt($curl, CURLOPT_URL, 'https://minha.url');

curl_exec ($curl);

Utilizando a função curl_setopt adicionamos a opção CURLOPT_COOKIEFILE e informamos o arquivo em que este cookie será salvo.