Php Facebook fbsr和会话不会删除
我有一个logout.php页面。通过单击已附加此javascript的注销来调用:Php Facebook fbsr和会话不会删除,php,javascript,facebook-graph-api,cookies,Php,Javascript,Facebook Graph Api,Cookies,我有一个logout.php页面。通过单击已附加此javascript的注销来调用: FB.getLoginStatus(function(response) { if (response.status === 'connected') { button.onclick = function() { FB.logout(function(response) { window.location = 'logout.php';
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
button.onclick = function() {
FB.logout(function(response) {
window.location = 'logout.php';
});
}
}
});
在注销页面上,我运行以下php代码:
if (isset($_COOKIE['fbsr_' . $app_id])) {
setcookie('fbsr_' . $app_id, $_COOKIE['fbsr_' . $app_id], time() - 3600, "/");
setcookie('PHPSESSID', $_COOKIE['PHPSESSID'], time() - 3600, "/");
unset($_COOKIE['fbsr_' . $app_id]);
unset($_COOKIE['PHPSESSID']);
}
问题是javascript确实会将某人注销。php脚本不会删除fbsr和phpsessid cookies。如何解决这个问题?对于某些应用程序,FB在“.your domain.tld”域下设置fbsr cookie(请注意前面的一点)。除非指定正确的域,否则不会删除cookie。尝试此操作,您将可以注销:
setcookie('fbsr_'.$appID',time()-3600',/','..$_SERVER['SERVER_NAME'])代码>
这是一个FB bug,它使cookie在注销时不会被删除,因此$FB->getUser()API调用将返回以前的用户ID,而不是NULL或0。这是FB世界;)
你好 我也有同样的问题,尽管所有的cookie PAR都是正确的(双重检查)
似乎对我有用的是
setcookie($cookie_name',null',/','.....$base_domain);
请注意空值,而不是:time()-3600
老实说,我不知道为什么这是有效的,而time()-3600却没有,但我反复检查了一下,它是有效的。。。HTH我也试过:$facebook->destroySession();它仍然不会注销,而不是unset($_COOKIE['PHPSESSID'])代码>使用会话_destroy()代码>。这将确保会话被清理。你是说你没有注销Facebook,还是说你没有注销你的网站FB.logout
应该可以处理从Facebook注销的问题,所以你不需要触摸FB\u sr*
cookie。它一直工作到2天前,michael,但是现在它保留了fbsr和PHPSESSID中存储的值,因为某些原因我无法取消设置。尝试使用会话\u销毁,但未发生任何事件。fbsr仍然活跃Melissa我想你是对的。。。对我来说,它一直工作到3天前,然后就坏了。。。事实上,我认为php删除了cookie,但之后fbsr_uucookie又被写入了(我想是facebook写的)。。。