2012-08-03 67 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