2012-08-03 36 views
-1

我一直在使用此代碼的Facebook SDK登出,但它不工作。不過,我可以成功登錄。這是代碼。Facebook的PHP登出問題

if ($user) { 
$logoutUrl = $facebook->getLogoutUrl(); 
} 
else { 
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'user_about_me, user_hometown') 
); 
} 

?> 

<?php if ($user){ ?> 
<a href="<?php echo $logoutUrl; ?>">Logout Here</a> 
<?php }else{ ?> 
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a> 
<?php }?> 
+0

頂部的'$ user'變量來自'$ facebook-> getUser()'? – complex857 2012-08-03 06:08:07

+0

是的,它來自$ facebook-> getUser() – 2012-08-03 06:09:20

回答

1

默認的Facebook SDK uses PHP內置的會話實現存儲它的數據。其中最後登錄的user id

當用戶點擊註銷鏈接時,Facebook會將她註銷並將其發送回您的網站,但Facebook無法刪除您網站的$_SESSION中的值。將next參數添加到$facebook->getLogoutUrl(),以便Facebook將該用戶發送回那裏,並且您可以使用session_destroy清除整個會話(在所有用戶註銷後)。

如果你不想清除整個會話只是Facebook的具體值,那麼在BaseFacebook類(出於某種原因未在官方sdk文檔中列出)有一種方法稱爲destroySession