2

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

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

4

2 回答 2

1

你确定你真的需要饼干吗?如果是这样,不幸的是,您对此无能为力。如果您的应用程序需要 cookie 才能工作,您将需要用户支持第三方 cookie。不过,请检查以确保您发送的是 P3P 标头。某些浏览器需要有效的 P3P 标头才能完全允许第三方 iframe cookie 即使启用了第三方 cookie。

例外:

  • 如果你只需要一个请求,你可以只依赖signed_request。
  • 您可以尝试使用基于 URL 的会话而不是基于 cookie 的会话。PHP 对此有一些内置支持,但对于其他语言/框架,您可能需要投入更多的工作。

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

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

于 2012-04-13T21:31:01.467 回答
0

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

于 2012-05-11T10:17:05.707 回答