注销后,Facebook php sdk返回用户ID

时间:2012-09-12 09:33:04

标签: php facebook facebook-graph-api

您好我正在使用最新的facebook php sdk为我的应用程序。 我在注销时遇到问题。 这是我的注销代码。

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

这是我的logout.php:

<?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。

请帮我解决一下。 提前致谢。

3 个答案:

答案 0 :(得分:1)

尝试删除FB cookie以及取消设置会话,例如:

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

然后你可以试试try..catch block,比如:

$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();

希望有所帮助

答案 1 :(得分:0)

offline_access - Facebook的登录网址参数中删除scope

答案 2 :(得分:0)

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

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

OR

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