Utrzymywanie sesji przy pomocy Curl i PHP

Próbuję połączyć się z interfejsem API, uwierzytelnić użytkownika, a następnie wyświetlić dane użytkownika. Osiąga się to poprzez uzyskanie dostępu do punktu końcowego logowania na stronie

http://api.example.com/login/<username>/<password>

aby się zalogować, a następnie wykonać następujące czynności, aby wyświetlić dane użytkownika:

http://api.example.com/user/

To wszystko działa w przeglądarce internetowej. Jednak gdy próbuję użyć Curl, logowanie działa poprawnie, ale podczas próby wyświetlenia szczegółów użytkownika otrzymuję 401, nieautoryzowany błąd. Uważam, że to dlatego, że Curl nie zapisuje poprawnie plików cookie sesji? Czy ktoś może wskazać, dlaczego nie działa i jak to naprawić? Próbowałem przeszukiwać stos wymiany, jednak żadne z wypróbowanych przeze mnie rozwiązań nie zadziałało w mojej sytuacji. Kod, którego używam do zwijania punktów końcowych, pokazano poniżej. Dzięki!

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

Ten kod wyświetli:

HTTP/1.1 200 OK Date: Mon, 22 Oct 2012 21:23:57 GMT Server: LiteSpeed Connection: close X-Powered-By: PHP/5.3.14 Set-Cookie: cfapi=f481129c9616b8f69cc36afe16466545; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Type: application/json X-Powered-By: CFWAPI 0.1a Content-Length: 46 {"status":200,"msg":"Successfully Logged In."}

# Netscape HTTP Cookie File # http://curl.haxx.se/rfc/cookie_spec.html # This file was generated by libcurl! Edit at your own risk. api.example.com FALSE   /   FALSE   0   cfapi 94f63b07ccf7e34358c1c922341c020f 

HTTP/1.1 401 Unauthorized Date: Mon, 22 Oct 2012 21:23:57 GMT Server: LiteSpeed Connection: close X-Powered-By: PHP/5.3.14 Set-Cookie: cfapi=a8eb015a7c423dde95aa01579c4729a4; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Content-Type: application/json X-Powered-By: CFWAPI 0.1a Content-Length: 49 {"status":401, "msg":"You need to login first!"}

questionAnswers(4)

yourAnswerToTheQuestion