Maison >développement back-end >tutoriel php >Comment puis-je résoudre « Erreur non autorisée » lors de l'utilisation de Curl et PHP pour maintenir des sessions API ?

Comment puis-je résoudre « Erreur non autorisée » lors de l'utilisation de Curl et PHP pour maintenir des sessions API ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-11 10:01:11363parcourir

How Can I Resolve

Maintenir la session avec Curl et PHP

Pour tenter de se connecter à une API, d'authentifier un utilisateur et de récupérer les détails de l'utilisateur, il est crucial de maintenir la session. Cela s'avère particulièrement difficile avec Curl, entraînant une « erreur non autorisée » lors de l'accès aux détails de l'utilisateur. Cet article examine le problème sous-jacent et propose une solution.

Pour résoudre ce problème, assurez-vous de définir explicitement l'option CURLOPT_COOKIEFILE. Conformément au manuel, cette option spécifie le chemin d'accès à un fichier de stockage de cookies. En omettant ce paramètre, Curl ne peut pas envoyer de cookies enregistrés lors des requêtes ultérieures, interrompant ainsi la session.

L'extrait de code suivant montre comment définir à la fois CURLOPT_COOKIEJAR et CURLOPT_COOKIEFILE :

define("COOKIE_FILE", "cookie.txt");

// Login the user
$ch = curl_init('http://api.example.com/login/joe/smith');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE);        // Store cookies in the file
curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE);      // Read cookies from the file
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);

// Continue accessing the API with the established session
// ...

En spécifiant les deux options, Curl peut maintenir efficacement la session tout en récupérant les détails de l'utilisateur, en résolvant l'erreur 401 et en permettant accès aux ressources de l'API.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn