2010-03-30 2 views
0

두 사이트가 있습니다. 둘 모두 내 프로젝트입니다. 사이트 2에서 사용자가 사이트 1에 로그인되어 있는지 확인해야합니다. 쿠키를 iframe의 본문에 넣은 다음 사이트 2의 iframe 내용을 읽는 스크립트를 만들어야합니다. 그러나 나는 할 수 없다. 여기 다른 호스트에서 쿠키 읽기

내가 테스트 목적으로 만들어진 코드 :
http://jsbin.com/oqaza/edit

내가 가지고라는 오류 :

"권한을 얻을 수 < http://jsbin.com> 거부 부동산 HTMLDocument.nodeType < http://www.google.com> "

+0

이렇게하면 작동하지 않을 것입니다. 그냥 이베이 - iframe이 내 쿠키 데이터를 보유하고 귀하가 관리 사이트에서 읽을 수 있도록 허용했는지 이미지하십시오. 서버 측에서이 작업을 수행해야합니다. – mana

+0

스택 오버플로에서 사용자가 Google 계정을 사용하여 로그인 할 수 있습니다. – Thinker

답변

0

나는 마침내 그것을 얻었다. 일반적으로 "OpenID"와 같은 솔루션이 있지만 (JSONP는 도메인 전체에서 쿠키를 읽는 가장 쉬운 방법입니다. :)

+0

어떻게 이것을 수행합니까? JSONP 요청이있을 때 쿠키를 다른 도메인으로 보내지 않는 IE 문제가 있습니다. –

1

iframe 문서는 Same Origin Policy의 영향을받습니다. 다른 호스트의 페이지에서 한 호스트의 콘텐츠에 액세스 할 수 없습니다. AJAX 요청도 마찬가지입니다.

최신 브라우저의 경우 하나의 해결책은 Cross Document Messaging입니다.

0

다른 언급했듯이 보안 문제로 인해 쿠키를 사용하는 것이 좋지 않습니다. 일 수 있습니다. 로그인 한 사용자를 다른 사이트로 되돌려 놓고 쿠키를 확인한 다음 상태를 나타내는 쿼리 문자열로 페이지를 다시 펀트합니다.하지만이 말은별로 말할 것도 없습니다.

로그인 상태와 관련하여 site2의 AJAX 요청에 응답 할 수있는 site1에서 웹 서비스 (또는 .Net MVC 인 경우 MVC JsonResult)를 만드는 것이 더 좋습니다.