Facebook如何在注销时删除cookie


facebook how to delete cookie on logout

我正在使用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();

任何建议将不胜感激。

出于某种原因,我无法对您的问题发表评论,所以这里有一个"答案"。

你看过这个帖子吗?
使用PHP SDK登录后删除Facebook会话

从我所读到的内容来看,更多的人正在为此苦苦挣扎。而且似乎没有人知道SDK中是否有本机函数。因此,手动取消设置可能是您最好的选择。

您需要将

用户访问令牌附加到注销 URL。

来自我的应用程序的示例。

 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.