문제

Curl을 사용하여 Curl을 사용하여 제 3 자 서버를 사용하여 로그인하는 PHP 페이지를 설정하려고합니다. 이제 내 코드는 제 3 자 서버에 성공적으로 로그인하지만 CURL은 세션 쿠키를 사용자에게 보내지 않기 때문에 사용자는 직접 로그인해야합니다

컬을 클라이언트에게 전달할 수있는 방법은 어떻게해야합니까? 감사

도움이 되었습니까?

해결책

확인하십시오 선적 서류 비치 다음 컬 옵션의 경우 :

CURLOPT_COOKIE
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

편집하다

귀하의 질문을 더 철저하게 읽은 후, 고객을 승인을 시도하는 사이트로 클라이언트를 리디렉션하지 않는 한 클라이언트 브라우저에 쿠키를 작성할 방법이 없다고 말하는 것이 두렵습니다. 브라우저 쿠키는 알려진 보안 모델에서 작동합니다 동일한 원산지 정책. 이는 기본적으로 도메인이 자체 도메인에 대해서만 쿠키를 발행 할 수 있으며 다른 도메인에 쿠키를 발행하지 않을 수 있음을 의미합니다. 특정한 경우 :

client --CONTACTS--> foo.com --cURL-LOGIN--> bar.com
bar.com --bar.com-COOKIE--> foo.com --foo.com-COOKIE--> client
client --foo.com-COOKIE--> bar.com (Will not work)

기본적으로 foo.com은 bar.com의 클라이언트에서 쿠키를 만들 수 없습니다!

다른 팁

사용자의 브라우저는 어쨌든 다른 도메인에 대한 쿠키를 설정할 수 없을 것입니다.

PHP 코드에서 로그인하고 (예 : 핫 메일) 세션 쿠키를 가져올 수 있습니다. 그러나 해당 세션을 사용자에게 전달할 수는 없습니다 (따라서 로그인 할 수도 있습니다).

많은 브라우저와 구성이 제 3 자 쿠키 설정을 거부하기 때문입니다.

서버로 리디렉션하지 않고 사용자의 브라우저에서 쿠키를 설정할 수 있습니다. 당신이해야 할 일은 사용자가 CURL 코드를 사용하여 PHP 페이지를 누르는 것입니다. 그런 다음 그의 게시물 데이터를 가져 와서이 데이터를 서버로 보낼 수 있습니다. 그러나 서버가 당신을 붉게하지 마십시오. 옵션을 다음과 같이 설정하십시오 curlopt_followlocation 거짓과 설정 Curlopt_header 사실으로 헤더를 잡고 쿠키와 위치 헤더를 추출한 다음 헤더로 헤더로 헤더로 전달하십시오 ( "위치 : ...) 및 헤더 ("Set-Cookie : ....). 다른 헤더도 추출하여 보낼 수도 있습니다. 다음 [게시물 HTML 페이지는 libcurl을 통해 쿠키를 얻지 못합니다 비슷한 상황이 있습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top