我很难让这个工作。我使用以下命令生成注销URL:
$logout = "https://www.facebook.com/logout.php?next=" . urlencode('http://' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']) . "&access_token=" . $facebook->getAccessToken();
哪个生成正确的(使用最后一个版本)url:
https://www.facebook.com/logout.php?next=http%3A%2F%2F...&access_token=AA....ZD
然而,这实际上并没有将用户注销。我尝试使用
$facebook->getLogoutUrl(array('next' => 'myurl'))
生成几乎相同的网址。这也行不通。我迷失了为什么它没有记录用户。我实际上尝试手动将地址放入地址栏,但它将我重定向到Facebook主页。
答案 0 :(得分:3)
facebook php sdk使用php会话来保存您登录的令牌。要清除它,您可以破坏会话。
的index.php:
<a href="logout.php">Log out</a>
logout.php
$facebook = new Facebook(array('appId' => FB_APP_ID, 'secret' => FB_APP_SECRET, 'cookie' => true));
$facebook->destroySession();
header('location: index.php');
FB_APP_ID和FB_SECRET是我的特定应用信息。替换为您自己的。
答案 1 :(得分:2)
如果您在使用Facebook PHP SDK时请求 offline_access 权限(有时甚至没有它),则会使默认注销功能无法正常运行。为了解决这个问题,以下为我工作:
//change your logout url to $logoutUrl = $facebook->getLogoutUrl(array( 'next' => ($fbconfig['baseurl'].'logout.php') )); //on logout page setcookie('fbs_'.$facebook->getAppId(), '', time()-100, '/', 'domain.com'); session_destroy(); header('Location: /');
希望有所帮助
答案 2 :(得分:0)
可能是因为PHP会话和会话cookie仍然完好无损。我写了a short article试图揭开FB登录/注销的神秘面纱。