Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich eine Curl-Sitzung am Leben halten, um nicht autorisierte 401-Fehler beim Zugriff auf APIs zu vermeiden?

Wie kann ich eine Curl-Sitzung am Leben halten, um nicht autorisierte 401-Fehler beim Zugriff auf APIs zu vermeiden?

Linda Hamilton
Freigeben: 2024-12-02 09:46:10
Original
771 Leute haben es durchsucht

How Can I Keep a Curl Session Alive to Avoid 401 Unauthorized Errors When Accessing APIs?

Sitzung mit Curl und PHP am Leben halten

Um eine Verbindung zu einer API herzustellen, einen Benutzer zu authentifizieren und Benutzerdetails anzuzeigen, müssen Sie sich zunächst anmelden und ein Sitzungscookie erhalten . Wenn Sie Curl verwenden, kann es jedoch beim Versuch, auf Benutzerdaten zuzugreifen, zu einem nicht autorisierten 401-Fehler kommen. Dies liegt daran, dass Curl das Sitzungscookie verwalten muss, um die Kommunikation zwischen den verschiedenen Endpunkten zu ermöglichen.

Der bereitgestellte Code wird zum Anmeldeendpunkt weitergeleitet und speichert die Cookie-Datei. Um jedoch gespeicherte Cookies bei späteren Anfragen mitzusenden, müssen Sie CURLOPT_COOKIEFILE auch auf dieselbe Cookie-Box setzen. Dadurch erhält Curl die notwendigen Informationen, um die Sitzung aufrechtzuerhalten und Benutzerdetails erfolgreich abzurufen.

Der korrigierte Code lautet wie folgt:

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); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);

// Read the session saved in the cookie file
echo "<br /><br />";
$file = fopen("cookie.txt", 'r');
echo fread($file, 100000000);   
echo "<br /><br />";

// Get the users details
$ch = curl_init('http://api.example.com/user');
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
**curl_setopt ($ch, CURLOPT_COOKIEFILE, COOKIE_FILE);** // **Set the cookie file** 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
echo curl_exec ($ch);
Nach dem Login kopieren

Durch das Hinzufügen von CURLOPT_COOKIEFILE behält Curl nun die Sitzung bei Cookie und erfolgreicher Zugriff auf Benutzerdetails.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Curl-Sitzung am Leben halten, um nicht autorisierte 401-Fehler beim Zugriff auf APIs zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage