禁用“第三方”Cookie之类的内容时,保持用户登录的最佳方法是什么。我目前有一个Facebook连接应用程序(仅在PHP中),当我在Firefox中检查时效果很好,但是当它未经检查时重定向到我的登录页面。甚至Facebook自己的示例应用程序(therunaround)在未经检查的情况下也存在相同的问题,因此我想知道是否无法绕过这个问题。
修改
@ codege3k
尝试了一堆p3p标头。到目前为止没有骰子。我有一个登录页面,当用户“连接”时重定向到我的索引...第一次加载,我能够从get_loggedin_user()
获取用户ID,但是当我刷新时,该函数返回null。存在cookie,当我回到登录页面并再次点击连接时,它不会提示我登录,所以我知道它部分正常工作。在Firefox中启用了“第三方cookie”,它就像一个魅力。
修改
在用户登录的上下文中处理facebook连接的最佳方法是什么?如果第三方cookie没有得到广泛支持?我应该只使用有效的初始登录并为我自己的网站设置本地cookie并使用它而不是每次都检查facebook状态吗?
答案 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错误。