我知道这已经被问过很多次了,我现在花了大约 2 个小时来浏览所有其他答案并尝试解决方案,但没有一个有效。基本上问题是我正在使用 Facebook PHP SDK 登录我的用户。那一点很好。当我想将用户从我的网站和 Facebook 中注销时,尽管它不起作用。如果这会影响任何事情,我的网站是内置在 codeigniter 中的。这是我所拥有的:
$this->load->library('facebook');
$logout_url = $this->facebook->getLogoutUrl(array('next' => site_url()));
redirect($logout_url);
这个用户被重定向了,但是如果我去 facebook.com,我仍然登录。这应该让用户退出 facebook,不应该吗?我已经尝试过诸如清除本机 php 会话、取消设置 cookie 等,如下所示:
$config = array(
'appId' => FB_APP_ID,
'secret' => FB_APP_SECRET,
'fileUpload' => true, // Indicates if the CURL based @ syntax for file uploads is enabled.
);
$this->load->library('facebook', $config);
setcookie('fbs_'.$this->facebook->getAppId(), '', time()-100, '/', $_SERVER["SERVER_NAME"]);
unset($_SESSION['fb_'.$this->facebook->getAppId().'_code']);
unset($_SESSION['fb_'.$this->facebook->getAppId().'_access_token']);
unset($_SESSION['fb_'.$this->facebook->getAppId().'_user_id']);
unset($_SESSION['fb_'.$this->facebook->getAppId().'_state']);
$logout_url = $this->facebook->getLogoutUrl();
$this->facebook->destroySession();
try {
$this->facebook->destroySession();
setcookie('fbs_'.$this->facebook->getAppId(), '', time()-100, '/', base_url());
} catch (Exception $e) {
//$this->facebook->clearAllPersistentData(); Protected method
}
$this->session->sess_destroy();
所以我唯一能想到的是,Facebook 有一个错误,它没有在应该注销的时候注销。任何人都知道是否是这种情况?