2013-07-29 158 views
2

我使用Facebook的最新版本的PHP SDK的(3.2.1)PHP SDK - Facebook的註銷

我想知道,註銷時使用從SDK中base_facebook.php提供的功能,如果有辦法阻止它實際註銷Facebook,但仍然刪除網站應用程序的會話?

下面是base_facebook.php

/** 
* Get a Logout URL suitable for use with redirects. 
* 
* The parameters: 
* - next: the url to go to after a successful logout 
* 
* @param array $params Provide custom parameters 
* @return string The URL for the logout flow 
*/ 

public function getLogoutUrl($params=array()) { 
session_destroy(); 
return $this->getUrl(
    'www', 
    'logout.php', 
array_merge(array(
    'next' => $this->getCurrentUrl(), 
    'access_token' => $this->getUserAccessToken(), 
), $params) 
); 
} 

註銷功能,然後我的退出網址是:$logoutUrl = $facebook->getLogoutUrl();那麼顯然使用錨標記註銷:<a href="<?php echo $logoutUrl; ?>">Logout</a>

謝謝。

回答

6

不使用$ logoutUrl。

<li><a href="?action=logout">Logout</a></li> 

並在您的php代碼中添加此項。這隻會將您從應用中註銷。

if(isset($_GET['action']) && $_GET['action'] === 'logout'){ 
     $facebook->destroySession(); 
    } 
+0

謝謝你的,我只是將使用session_destroy();但似乎也從Facebook註銷,這雖然有用,所以謝謝! – Blake

+0

不客氣:) – 2013-08-05 07:14:13

2

創建一個文件logout.php

<?php 
session_start();   //start session 
$_SESSION = array(); //clear session array 
session_destroy();  //destroy session 
?> 
<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Log Out</title> 
</head> 

<body> 
<p>You have successfully logged out!</p> 
<p>Return to the <a href="....index.php">Home</a> page</p> 

</body> 
</html> 

,改變你的代碼,你檢查用戶狀態

if ($user) { 
    $params = array('next' => 'http://....../logout.php'); 
    $logoutUrl = $facebook->getLogoutUrl($params); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

使用$ logoutUrl用於註銷用戶。

<?php if ($user): ?> 
<?php echo "Welcome, ".$me['first_name']. " " .$me['last_name'] ." <br />"; 
     echo "Id: " . $me['id'] ." <br />"; ?> 

<a href="<?php echo $logoutUrl; ?>"> Logout </a> <br /> 

<?php else: ?> 
    <a href="<?php echo $loginUrl; ?>"> 

    <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif"> </a> 
<?php endif ?> 

希望它會正常工作