Facebook连接和第三方Cookie?

5
当像“第三方”cookies被禁用时,保持用户登录的最佳方法是什么?我目前拥有一个Facebook连接应用程序(仅使用PHP),在Firefox中选中它时运行得很好,但当取消选中时会重定向到我的登录页面。即使是Facebook自己的示例应用程序(therunaround)也存在同样的问题,因此我想知道是否没有解决这个问题的方法。 编辑: @codege3k
尝试了一堆p3p头文件,但目前还没有成功。我有一个登录页面,当用户“连接”时重定向到我的索引...第一次加载时,我能够从get_loggedin_user()获取用户ID,但当我刷新时,该函数返回null。cookie存在,并且当我返回登录页面并再次点击连接时,它不会提示我进行登录,因此我知道它部分工作。在Firefox中启用“第三方cookie”时,它能够完美运行。
什么是在第三方cookie得不到广泛支持的情况下处理Facebook连接的最佳方法?我应该只使用初始登录并为我的网站设置本地cookie,而不是每次都检查Facebook状态吗?
3个回答

5

好的,推广会话似乎起作用了。

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

编辑:

因此,每次请求都会获取会话,但基本上,为了使Facebook Connect正常工作,必须启用第三方cookie。根据他们的文档:

用户的浏览器必须设置为接受第三方Cookie,以便在点击之间保持连接。

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


2

我曾经遇到过与第三方cookie相关的类似问题。查看这个问题,看看是否可以解决。

可以通过添加P3P头来解决此问题。


0

我发现 P3P 头文件并没有太大的区别。在 Firefox 中选择不允许“第三方 cookie”时,它无论如何都不起作用。如果需要的话,您可以从 Facebook 获取初始值并自己设置本地 cookie。 - typeoneerror

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接