Facebook连接和第三方cookie?

时间:2009-03-03 17:30:26

标签: php cookies facebook

禁用“第三方”Cookie之类的内容时,保持用户登录的最佳方法是什么。我目前有一个Facebook连接应用程序(仅在PHP中),当我在Firefox中检查时效果很好,但是当它未经检查时重定向到我的登录页面。甚至Facebook自己的示例应用程序(therunaround)在未经检查的情况下也存在相同的问题,因此我想知道是否无法绕过这个问题。

修改

@ codege3k

尝试了一堆p3p标头。到目前为止没有骰子。我有一个登录页面,当用户“连接”时重定向到我的索引...第一次加载,我能够从get_loggedin_user()获取用户ID,但是当我刷新时,该函数返回null。存在cookie,当我回到登录页面并再次点击连接时,它不会提示我登录,所以我知道它部分正常工作。在Firefox中启用了“第三方cookie”,它就像一个魅力。

修改

在用户登录的上下文中处理facebook连接的最佳方法是什么?如果第三方cookie没有得到广泛支持?我应该只使用有效的初始登录并为我自己的网站设置本地cookie并使用它而不是每次都检查facebook状态吗?

3 个答案:

答案 0 :(得分:4)

好的,促进会话似乎有效。

$fbUserId = self::$facebook->get_loggedin_user();
if ($fbUserId)
{
     self::$facebook->promote_session();
     return $fbUserId;
}

修改:

因此,这会在每次请求时获得会话,但实质上,必须启用第三方cookie才能使Facebook Connect按预期工作。来自他们的文档:

  

用户的浏览器必须设置为   接受第三方Cookie   它在点击之间保持联系。

来源:http://wiki.developers.facebook.com/index.php/Logging_In_And_Connecting

答案 1 :(得分:2)

我遇到与第三方Cookie类似的问题。检查此question并查看它是否已解决

可以通过添加p3p头来解决。

答案 2 :(得分:0)

P3P是否可以为不接受第三方Cookie的浏览器解决此问题?我在http://bugs.developers.facebook.com/show_bug.cgi?id=5009评论了一个FB错误。