2011-04-20 3 views
2

저는 cURL을 통해 원격 로그인을하는 응용 프로그램을 개발하고 있습니다.PHP & cURL 프록시 - 다중 사용자 쿠키 병을 만드는 방법?

원격 사이트에서 쿠키 쿠키를 저장할 수있는 세션 쿠키를 제공합니다.

내 사이트의 각 사용자가 원격 사이트에서 고유 세션을 갖기를 원합니다. 내 응용 프로그램은 단 하나의 사용자 (나)와 잘 동작하지만 다중 사용자로 만드는 방법을 잘 모르겠습니다.

내 첫 번째 생각은 내 응용 프로그램 사용자를위한 세션 변수를 설정 한 다음이 변수를 쿠키 항아리의 이름으로 사용하는 것입니다.하지만이 방법은보기 흉한 것처럼 보입니다.

고유 세션을 원격 서버에서 사용자에게 전달하는 내장 PHP/cURL 기능이 있습니까?

도움을 주셔서 감사합니다.

답변

3

귀하의 질문은 솔루션, 즉 쿠키 항아리와 세션의 모든 요소를 ​​가지고있다.

당신은 단순히 CURL 사용자에 따라 그것을 예를 이름을 지정하기 위해 쿠키 jar 파일을 제공 할 때 :

$protected_cookie_dir='/cookies/'; 
$uid=getUser()->id; // get the user id 
curl_set_opt($ch,CURLOPT_COOKIEFILE,$protected_cookie_dir.'file_'.$uid.'.data'); 
curl_set_opt($ch,CURLOPT_COOKIEJAR,$protected_cookie_dir.'jar_'.$uid.'.data'); 

중요 : 어쩌면 (해당 폴더를 숨길해야합니다 문서 루트 외부에 보관).

+0

답장을 보내 주셔서 감사합니다. 나는 나의 질문이 약간 모호 할 수도 있다고 생각한다 - 내가 '다중 사용자'라고 말할 때 나는 실제로 '사용자 관리'보다는 '여러 동시 사용자'를 의미한다. 내가 대답 한 것은 원격 세션 쿠키를 현재 PHP 세션에 고유 한 항아리에 저장하는 것입니다. 예를 들어 session_id()가 올바른 방법입니다. 그걸 정리 해줘서 고마워. –

+0

여러분을 환영합니다! 그러나 각 통화 사이에 쿠키를 재설정하는 데 사용해야하는 CURL 설정이 있다는 경고가 있어야합니다. 그렇지 않으면 세션간에 휘발성 쿠키가 누출 될 수 있습니다. 자세한 내용은 여기를 참조하십시오. http://www.php.net/manual/en/function.curl-setopt.php – Christian

+0

이 정보를 제공해 주셔서 감사합니다. CURL은 쿠키 파일을 참조 할 때 자동으로 생성합니까? 아니면 같은 스크립트에서 만들어야합니까? –