javascript - Safari 上的 Facebook 应用程序 iframe 登录问题

标签 javascript facebook iframe

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

facebook 在 iframe 中加载我的网站。当我单击一个链接时,我的网站使用灯箱显示一个 iframe 来显示 facebook 登录。在 ff 上一切正常,即 chrome。在 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;
    });


};

任何想法将不胜感激!

谢谢!

最佳答案

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

通常在 iframe 中设置 cookie 时存在安全问题,p3p header 充当网站和客户端计算机之间的协议(protocol),保证保存在 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"')
?>

就是这样!

关于javascript - Safari 上的 Facebook 应用程序 iframe 登录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828046/

相关文章:

javascript - 有什么方法可以访问所有 MS Word 2016 内容控件吗?

javascript - 在 Firefox 中禁用主窗口滚动 onmouseenter iframe

javascript - 在动态加载的 iframe 中设置样式

javascript - 单击 iFrame 中的按钮时如何关闭 jQuery 对话框?

javascript - 在使用 Bootstrap 标签输入将其转换为标签之前处理标签

javascript - 以设定的时间增量循环对象

javascript - 正则表达式 : Allow letters, 数字和空格(至少一个字母不是数字)

ios - Facebook FBWebDialogs 参数一次邀请多个 friend

xcode - 将按钮连接到应用程序委托(delegate)

facebook - 如何查看我的 Facebook AccessToken?如何续订? (.NET 桌面应用程序)