2011-07-18 3 views
0

우리는 서버와 다수의 클라이언트를 보유하고 있습니다. 사용자가 서버에 로그인 한 경우 서버의 user_id에 세션이 만들어지고 OpenId를 사용하여 클라이언트가 서버로 리디렉션됩니다.어떻게 Curl을 사용하여 세션 ID를 전송할 수 있습니까?

하지만 클라이언트로 리디렉션되기 전에 클라이언트에 세션이있는 경우에만 curl 및 리디렉션을 사용하여이 세션 사용자 ID를 가져 오려고합니다.

쿠키없이 PHP 세션을 사용하여이 작업을 수행 할 수 있습니까?

+0

글쎄, 세션 ID를 전송하는 방법은 URL과 쿠키 두 가지뿐입니다. 어쨌든 너의 건축을 이해할 수 없어. PHP 세션 ID를 OpenID 서버로 전송 하시겠습니까? 쿠키, 회사 정책을 왜 사용할 수 없습니까? –

+0

답장을 보내 주셔서 감사합니다. 아니요. 사용자 세션이 서버에있는 경우에만 브라우저가 자동으로 오픈 ID 서버로 리디렉션되기를 원합니다. 우리는 쿠키도 사용할 수 있지만, 어떻게 크로스 도메인으로 이것을 할 수 있습니다. 서버가 다른 도메인에 있고 클라이언트가 자체 도메인에 있습니다. 우리는 Curl을 사용하여 서버에 쿠키가 존재하는지 확인하기를 원했습니다. – aparna

+0

미안하지만 여전히 당신을 따르기가 어렵습니다. 당신은 두 개의 서버를 가지고 있는데, 둘 다 "서버"라고 부릅니다 : -? 서로 다른 두 서버 사이에 세션 식별자를 공유 하시겠습니까? –

답변

0

어쨌든 세션이 쿠키이므로 가장 쉬운 방법은 쿠키를 domain:sitea,siteb으로 변경하는 것입니다. 다른 방법으로 URL에 전달하는 것이지만 사용자가 직접 브라우저에 http://siteb.whatever/을 입력하면 작동하지 않습니다. 예를 들어

:

header("Set-Cookie: $mySessionId; Domain=siteA.com; Path=/exemple/of/path; Secure;"); 
header("Set-Cookie: $mySessionId; Domain=siteB.com; Path=/; Secure;"); 

두 개의 쿠키를 만들 것인가, 느릅 나무는 siteA.com/exemple/of/path/ 또는 siteB.com/에 연결할 때마다 다시 전송됩니다. 만료 시간을 지정하지 않으면 브라우저가 닫히면 삭제됩니다.

동음 : 만료 날짜와 쿠키, 영구 쿠키 있습니다 그렇지 않으면 그들은 세션 쿠키 있습니다.

PHP setcookie()을 사용할 수도 있습니다. 또한 보시길 how cookie works.

+0

세션 ID는 URL에서도 전송할 수 있습니다 (http://es.php.net/manual/en/session.idpassing.php). –

+0

어떻게 할 수 있는지 잘 모르겠습니다 ... 예제 코드로 도와주세요. advan 님 감사합니다. – aparna

+0

@ Àlvaro : 부적절합니다. 링크 또는 리디렉션과 함께 작동합니다. 질문의 코멘트에 명시된 바와 같이 어려운 입력이 아닙니다. @ aparna : 내 대답을 편집했습니다. –

0

다른 브라우저에서 세션을 제어 할 수 있도록 가장 신뢰할 수있는 방법은 세션 저장을 위해 MySQL 또는 다른 저장 매체를 사용하는 것입니다. 브라우저에서 멀리 떨어진 상태에서 전달 될 수 있습니다.

관련 문제