2011-04-29 5 views
4

iframe을 사용하는 facebook 앱이 있습니다.페이 스북 앱 사파리의 iframe 로그인 문제

facebook은 내 웹 사이트를 iframe 안에로드합니다. 링크를 클릭하면 내 웹 사이트에서 라이트 박스를 사용하여 iframe에 페이스 북 로그인 정보를 표시합니다. 모든 것이 ff, 즉 크롬에서 잘 작동합니다. 사파리에서 프레임은 무한정 다시로드됩니다.

PHP 코드

window.fbAsyncInit = function() { 




    FB.init({ 
    appId : '<?=$appId?>', 
    status : true, // check login status 
    cookie : true, // enable cookies to allow the server to access the session 
    xfbml : true // parse XFBML 
    }); 

    check_login_session(); 

    // whenever the user logs in, we refresh the page 
    FB.Event.subscribe('auth.login', function() { 

     $.browser.safari = ($.browser.safari && /chrome/.test(navigator.userAgent.toLowerCase())) ? false : true; 

     window.location.href = window.location.href; 
    }); 


}; 

아이디어 login.php

에서

$me = null; 


$session = $facebook->getSession(); 

if ($session) { 
    try { 

    $me = $facebook->api('/me'); 

    $_SESSION['facebook'] = $me; 


    } catch (FacebookApiException $e) { 
    } 
} 

if($me) require_once("logged.php"); 
else require_once("login.php"); 

자바 스크립트는 감사하겠습니다!

감사합니다.

+0

나는 방금 http://stackoverflow.com/questions/172223/how-do-i-set-cookies-from-outside-domains-inside-iframes-in-safari에 흥미로운 코멘트를 발견했습니다. 나는 Broote의 해결책이 효과가있을 것이라고 생각하지만, 그가 쓴 것을 이해하지 못합니다. – Moon

+0

http://forum.developers.facebook.net/viewtopic.php?pid=257432#p257432 – Moon

+0

누구에게나 완벽한 솔루션을 발견했습니다. 키스하겠습니다 !!!!! – Moon

답변

2

UR 여전히 솔루션을 찾고 있다면 http://www.p3pwriter.com/LRN_121.asp

보통은 iframe 내부에 쿠키를 설정 보안 문제가 P3P 헤더를 구축 시도는 P3P 헤더 정보에 저장되어 있음을 보장하는 웹 사이트와 클라이언트 컴퓨터 간의 계약의 역할 쿠키는 오용되지 않을 것입니다.

빠른 해결책 : http://planet.admon.org/how-to-implement-p3p-http-headers-for-cross-site-cookies/

가해야 할 일 : 복사 머리글이를 붙여 넣습니다

<?php 
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"') 
?> 

그게 전부에요!