会话不会在旧的Facebook iframe应用程序中失效

时间:2011-01-10 19:47:06

标签: php facebook codeigniter facebook-graph-api facebook-iframe

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

我正在使用CodeIgniter框架并已提及this帖子。以下是代码段:

$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。为什么会这样?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

SO:

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

所以每次创建一个新的facebook类时,它都会先破坏旧会话中的cookie。