Facebook php-sdk在注销后返回用户id


Facebook php sdk returns user id after logout

你好,我正在为我的应用程序使用最新的facebookphp-sdk。我对它的注销有意见。这是我注销的代码。

<?php
$logout = $facebook->getLogoutUrl(array(
  'next' => 'https://www.thevoucherlink.com/logout.php'));
?>

这是我的登录。hp:

<?php
session_start();
unset($_SESSION['fb_uid']);
session_destroy();
header('location:https://www.thevoucherlink.com/index.php?ref=logout');
?>

注销后,用户从facebook注销。但不是从我的应用程序。

$user_id=$facebook->getUser();

此函数在注销后返回用户id。

请帮我解决它。提前谢谢。

尝试在取消设置会话的同时删除FB cookie,如:

session_start();
$fb_key = 'fbs_'."YOUR_FB_APP_ID";
setcookie($fb_key, '', time() - 3600, '', '/', '');
unset($_SESSION['fb_uid']);
session_destroy();

那你可以试着试试。。捕获块,类似于:

$userId = $facebook->getUser();
try {
   $myDetails = $facebook->api('/me');
   //will return details if still loggedin
} catch (Exception $e) {
   //user has already logged out
}

已编辑

在您的logout.php中,尝试执行以下操作:

$facebook = new Facebook(array('appId' => 'your_id', 'secret' => 'your_secret'));
//destroy the session
$facebook->destroySession();

可能是注销链接是从Facebook注销用户,而不是从您的应用程序注销。

您必须使用$this->Auth->logout();将用户从应用程序中注销。

尝试使用PHP SDK与Javascript SDK的集成。

scope中删除offline_access-Facebook登录URL的参数。