Je fais des tests unitaires dans PHP pour un site nécessitant une authentification. L'authentification est basée sur un cookie, je dois donc pouvoir placer un cookie comme celui-ci dans le pot de cookie:
[ 'user_token' => '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae' ]
L'application Web peut ensuite utiliser ce bon jeton connu pour les données de test et sera en mesure de s'authentifier dans des conditions de test pour interagir avec les appareils de données.
En outre, il doit s'agir d'un cookie sécurisé et je dois (évidemment) définir le domaine.
Le problème est: je ne sais pas comment faire et mettre ce cookie et le coller dans le pot. Comment tu fais ça?
Le code source fourni la réponse dont j'avais besoin.
La classe CookieJar fournit une méthode pour créer des cookies à partir d'un tableau associatif. Exemple:
$domain = 'example.org';
$values = ['users_token' => '2c26b46b68ffc68ff99b453c1d30113413422d706483bfa0f98a5e886266e7ae'];
$cookieJar = \GuzzleHttp\Cookie\CookieJar::fromArray($values, $domain);
$client = new \GuzzleHttp\Client([
'base_uri' => 'https://example.org',
'cookies' => $cookieJar
]);
Exemple simple. ce code enregistre un cookie dans un fichier et le charge lors de la prochaine exécution du script
use GuzzleHttp\Client;
use GuzzleHttp\Cookie\FileCookieJar;
// file to store cookie data
$cookieFile = 'cookie_jar.txt';
$cookieJar = new FileCookieJar($cookieFile, TRUE);
$client = new Client([
'base_uri' => 'http://example.com',
// specify the cookie jar
'cookies' => $cookieJar
]);
// guzzle/cookie.php, a page that returns cookies.
$response = $client->request('GET', 'simple-page.php');
les cookies de session ne sont pas stockés automatiquement. Pour stocker le php cookie de session, nous devons définir le deuxième paramètre sur TRUE.
$cookieJar = new FileCookieJar($cookieFile, TRUE);
Référence