0

所以我正在开发一个集成 Facebook 的网站,我遇到了一个奇怪的问题。问题是,需要处理访问令牌,就像它随时可能变为无效一样。例如,如果用户注销或更改他/她的密码,他们会在进一步请求时获得 OAuthException,对吗?

但是,当我注销时,我的应用程序使用的访问令牌似乎仍然有效,这带来了一个问题,因为用户需要先从我们的网站注销,然后才能使用另一个 Facebook 帐户登录。

这里有没有人遇到同样的问题,即使用户退出 Facebook,访问令牌仍然有效?我正在尝试找到一个创造性的解决方案来解决这个问题,所以任何帮助都将不胜感激。

谢谢你。

4

1 回答 1

0

是的,这是因为 facebook 集成到单独的站点假定您不希望用户在注销 facebook 站点时从您的单独站点注销。

基本上有 2 个用户 'access_tokens' 可以使用;代码和 signed_request - signed_request 是用户注销后被 facebook 失效的请求,其中代码在一段时间内保持有效。

只有代码从使用 facebook 登录请求返回,这意味着 access_token 只会在时间过去后失效。

当在 facebook 内部调用应用程序时发送签名请求,即画布应用程序,此令牌优先于“代码”参数,这将覆盖“代码”访问令牌。

因此,我正在构建的应用程序既有一个独立于 facebook 的微型站点,也有一个 facebook canvass 应用程序,它们都指向同一个主机,所以如果用户通过单独的站点登录,然后退出 facebook,他们的会话就会开启我的单独站点将保持活动状态,因此如果另一个用户在同一台​​机器上登录 facebook,并且他们访问单独的站点,他们将看到以前的用户信息,因为他们没有从我的站点注销,但如果他们是要从 facebook 中转到 canvass 应用程序,facebook 将发送一个“signed_request”参数,该参数将覆盖单独的站点会话,并登录适当的用户,这也意味着当他们注销 facebook 时他们的会话将失效。

我看到的只有 2 个解决方案:

1)您可以在每个页面末尾使存储的会话无效,然后这将强制您的网站针对每个页面请求重定向到 facebook 登录,如果用户已经登录,这将直接重定向回来,但代价是一些表现。

2) 仅通过facebook 使用网站,即强制用户使用canvas 应用程序。

于 2013-10-24T11:10:54.747 回答