关于safari的facebook app iframe登录问题

时间:2011-04-29 04:52:37

标签: javascript facebook iframe

我有一个使用iframe的Facebook应用。

facebook将我的网站加载到iframe中。当我点击链接时,我的网站使用灯箱显示iframe以显示Facebook登录信息。一切都在ff上工作正常,即铬。在safari上,帧会无限重载。

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");

login.php中的javascript

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;
    });


};

任何想法都将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您仍在寻找解决方案,请尝试构建P3P标头 http://www.p3pwriter.com/LRN_121.asp

在iframe中设置cookie时通常存在安全问题,p3p标头作为网站与客户端计算机之间的协议,保证cookie中保存的信息不会被滥用。

快速解决方案: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"')
?>

就是这样!