Beim Versuch, eine Verbindung zu einer API herzustellen, einen Benutzer zu authentifizieren und Benutzerdetails abzurufen, ist es wichtig, die Sitzung aufrechtzuerhalten. Dies erweist sich bei der Verwendung von Curl als besonders schwierig und führt zu einem „unautorisierten Fehler“ beim Zugriff auf die Benutzerdaten. Dieser Artikel geht auf das zugrunde liegende Problem ein und bietet eine Lösung.
Um dieses Problem zu beheben, stellen Sie sicher, dass Sie die Option CURLOPT_COOKIEFILE explizit festlegen. Laut Handbuch gibt diese Option den Pfad zu einer Cookie-Speicherdatei an. Durch Weglassen dieses Parameters ist Curl nicht in der Lage, bei nachfolgenden Anfragen gespeicherte Cookies zu senden, wodurch die Sitzung effektiv unterbrochen wird.
Der folgende Codeausschnitt zeigt, wie sowohl CURLOPT_COOKIEJAR als auch CURLOPT_COOKIEFILE festgelegt werden:
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 // ...
Durch die Angabe beider Optionen kann Curl die Sitzung effektiv aufrechterhalten und gleichzeitig die Benutzerdetails abrufen, den 401-Fehler beheben und zulassen Zugriff auf die Ressourcen der API.
Das obige ist der detaillierte Inhalt vonWie kann ich einen „unautorisierten Fehler' beheben, wenn ich Curl und PHP zur Verwaltung von API-Sitzungen verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!