在浏览器中禁用第三方Cookie时,Facebook应用程序无效

时间:2012-04-13 09:34:07

标签: facebook session-cookies

我开发了一个Facebook应用程序(iframe)。它工作正常。但是当用户在浏览器中禁用第三方Cookie时,应用程序会进入无限重定向循环。

如果您需要更多信息来帮助我,请告诉我。

2 个答案:

答案 0 :(得分:0)

你确定你真的需要饼干吗?如果是这样,不幸的是,你无法做到这一点。如果您的应用需要使用Cookie,则您需要用户支持第三方Cookie。但请检查以确保您正在发送P3P标头。某些浏览器需要valid P3P header才能在所有中允许第三方iframe Cookie ,即使启用了第三方Cookie也是如此。

例外:

  • 如果您只需要一个请求,则可以依赖signed_request。
  • 您可以尝试使用基于URL的会话而不是基于cookie的会话。 PHP有一些built-in support,但是对于其他语言/框架,你可能需要做更多的工作。

我猜你正在做的是尝试将用户重定向到OAuth对话框,然后该对话框将用户发送回你的页面,对吧?对于OAuth对话框后的第一个请求,您应该尝试从signed_request中获取身份验证信息。然后,您可能希望将其存储在服务器端会话中,并在cookie或查询参数中传递该ID的ID。我相信PHP和Python SDK都做这样的事情。如上所述,如果cookie不起作用,当用户在您的应用程序中移动时,您需要找出另一种保持状态的方法。

我诚实的推荐?尝试检测用户的浏览器是否不允许设置第三方cookie,如果没有,则只需抛出一个错误页面,说明他们的安全设置不会让他们使用像您这样的酷应用程序。

答案 1 :(得分:0)

如果第三方cookie被禁用,会话将无法正常工作,因为session_id也存储为cookie。