0

我面临一个非常奇怪的问题。差不多一年前,我开发了一个 Facebook iframe 应用程序。我正在使用 facebook-php-sdk 来登录用户会话和其他详细信息。我最近做了一些更改并使用了新的基于 facebook OAuth 的 API。但是我现在面临一个问题,当用户从 Facebook 注销时,我的 iframe 应用程序仍然能够访问其 facebook 会话。这个问题只能在 IE 中重现。

我正在使用 CodeIgniter 框架并参考了这篇文章。这是代码片段:

$this->facebook = new Facebook(array( 'appId' => $this->appId, 'secret' => $this->secretKey, 'cookie' => true, ));
$this->session = $this->facebook->getSession();
var_dump($this->session);

在输出中,即使在用户注销后,我也会得到所有有效的会话值。在尝试了很多事情之后,我创建了一个新的 facebook 应用程序并将 URL 指向我的相同代码。我修改了代码并使用了这个新的 facebook 应用程序提供的 AppId、Appkey 和 AppSecret。现在一切正常。

两个 Facebook 应用程序中的设置完全相同。唯一的变化是 appURL 和键。这是一种奇怪的行为,对我来说不是一个可以接受的解决方案。我希望我的旧 Facebook 应用程序能够与新的 Facebook API 一起使用。为什么会这样?任何想法?

4

1 回答 1

1

我遇到了同样的问题,为了解决这个问题,我不得不手动销毁 facebook cookie(其中包含访问令牌)

所以:

添加:
$_COOKIE["fbs_" 。$this->appId] = null;
之前:
$this->facebook = new Facebook(...

因此,每次它创建一个新的 facebook 类时,它都会首先从旧会话中销毁 cookie。

于 2011-04-18T10:20:29.207 回答