我正在使用JS和PHP SDK,我可以使用facebook成功登录用户。 但注销似乎不起作用(我可以将用户从我的网站注销,但不能从Facebook中注销)。
这是我的退出代码:
require_once('../libs/facebook/src/facebook.php');
$facebook = new Facebook( array (
'appId' => 'xxxx',
'secret' => 'xxxx',
'cookie' => true
)
);
$fb_key = 'fbsr_'.$facebookConfig['app_id'];
// set_cookie($fb_key, '', '', '', '/', '');
//$facebook->setSession(NULL);
$facebook->destroySession();
$facebook->getLogoutUrl();
$_SESSION = array();
session_unset();
session_destroy();
$files = array();
foreach ($_SESSION as $key => $value) {
$files[] = $key;
unset($_SESSION[$key]);
}
我曾尝试使用以下内容删除cookie,但我收到一条错误消息,即setcookie不是函数
$fb_key = 'fbsr_'.$facebookConfig['app_id'];
setcookie($fb_key, '', time()-3600);
$facebook->destroySession();
任何建议都将受到赞赏。
答案 0 :(得分:1)
出于某种原因,我不能对你的问题发表评论,所以这里是一个'答案'。
你看过这篇SO帖子了吗?根据我的阅读,更多的人正在努力解决这个问题。似乎没有人知道SDK中是否存在本机功能。所以手动取消它可能是你最好的选择。
答案 1 :(得分:0)
您需要将用户访问令牌附加到注销网址。
我的应用程序示例。
if($_GET['destroy']){
$facebook->destroySession();
}
$params = array( 'next' => 'https://apps.facebook.com/anotherfeed/?ref=logout&destroy=true', 'access_token' => $access_token);
$logout=$facebook->getLogoutUrl($params); // $params is optional.