facebook connect在注销时不会清除会话cookie

时间:2010-11-29 12:18:22

标签: php facebook facebook-graph-api

我正在与一个项目上的Facebook进行一些集成(使用图形api)并且一切正常,直到现在我发现当我点击注销网址时facebook不会清除我的会话。我正在通过php注销,而不是javascript,所以注销网址看起来像:

https://www.facebook.com/logout.php?next=url&access_token=token

点击该链接后,用户将在Facebook上注销,但该会话仍然存在于我的网站上。要实际清除会话,我必须在点击该网址后再次刷新页面。在我看来,这是一种奇怪的行为。

你们怎么想这个?我甚至试图亲自删除facebook cookie,但它仍然存在,只有在我点击浏览器上的刷新按钮后才能清除它。

P.S。为了获得facebook会话,我做了类似的事情:

My_Facebook_Helper::instance()->getSession(); //it should be === null if it doesn't exist

p.p.s。它可能是一个错误?我不记得大约一周前我第一次开始实施这个问题时遇到这个问题

5 个答案:

答案 0 :(得分:1)

我遇到了这个错误并意识到这不是会话没有被清除,但如果你有离线访问权限,它会自动为你提供一个新的会话。

答案 1 :(得分:1)

尝试在formatData(AS3)某处找到LoginWindow函数并找到以下行:

vars.redirect_uri = FacebookURLDefaults.LOGIN_SUCCESS_URL

更改“http://www.facebook.com/”的值并在登录时从该html页面注销。

如果您是开发人员,而不是最终用户,这是注销的临时解决方案。

答案 2 :(得分:0)

我今天刚刚解决了类似的问题。 尝试使用它来获取会话:

$session = $facebook->getSession();

这也有助于退出网址:

$logoutUrl = $facebook->getLogoutUrl(array('next' => $url, 'session_key' => $session['session_key']));

希望它有所帮助!

答案 3 :(得分:0)

我试过这个

$logoutUrl = $facebook->getLogoutUrl(array('next' => 'some url', 'session_key' => $session_key)) . 'session_key=null';

答案 4 :(得分:0)

这是一个错误。请为此错误添加您自己的repro以帮助解决此问题

http://developers.facebook.com/bugs/250825644953332