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 ?
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!