我正在与一个项目上的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。它可能是一个错误?我不记得大约一周前我第一次开始实施这个问题时遇到这个问题
答案 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以帮助解决此问题