API에 연결하고, 사용자를 인증하고, 사용자 세부 정보에 액세스하려는 시도에서, Curl을 사용하여 사용자 세부 정보를 인증하고 볼 때 사용자는 세션 문제를 경험합니다. 로그인은 성공적으로 작동하지만 사용자 세부 정보를 보면 401 승인되지 않은 오류가 발생합니다. 이는 Curl이 세션 쿠키를 효과적으로 보존할 수 없음을 나타냅니다.
문제는 CURLOPT_COOKIEFILE이 없다는 것입니다. 이는 Curl이 후속 요청에서 저장된 쿠키를 전송하는 데 필수적인 옵션입니다.
이 옵션은 매뉴얼에 정의되어 있습니다. as:
"쿠키 데이터가 포함된 파일의 이름입니다. 쿠키 파일은 Netscape 형식일 수도 있고 파일에 덤프된 일반 HTTP 스타일 헤더일 수도 있습니다. 이름이 빈 문자열이면 쿠키가 없습니다. 로드되었지만 쿠키 처리는 여전히 활성화되어 있습니다."
제공된 코드에서는 요청이 완료된 후 쿠키를 저장하기 위해 쿠키 항아리가 사용됩니다. 그러나 CURLOPT_COOKIEFILE이 설정되지 않으면 Curl은 향후 요청 시 저장된 쿠키를 전송할 수 없습니다.
문제를 해결하려면 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); 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); // Add the CURLOPT_COOKIEFILE option curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, true); echo curl_exec ($ch);
CURLOPT_COOKIEFILE 옵션을 통합하여, Curl은 후속 요청에 대해 저장된 쿠키를 성공적으로 전송함으로써 무단 오류를 제거하고 사용자 세부 정보에 대한 액세스를 허용합니다.
위 내용은 세션 쿠키를 유지하기 위해 PHP와 함께 Curl을 사용할 때 401 무단 오류를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!