2

我使用的是JS和PHP SDK,我可以使用facebook成功登錄用戶。 但是註銷似乎不起作用(我可以登錄一個用戶離開我的網站,但沒有離開Facebook)。facebook如何在註銷時刪除cookie

這裏是我的註銷代碼:

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(); 

任何建議將不勝感激。

回答

1

由於某些原因,我無法對您的問題發表評論,所以這是'答案'。

你看過這篇貼子嗎?
Delete Facebook Session After Login with PHP SDK

更多的人在這方面掙扎,從我讀過的東西。似乎沒有人知道SDK中是否有本地函數。所以手工取消它可能是你最好的選擇。

+0

感謝您的建議,但我沒有設法使用此註銷。 – Athanatos

0

您需要將用戶訪問令牌附加到註銷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. 
相關問題