1

您好,我正在为我的应用程序使用最新的 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。

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

4

3 回答 3

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 块,例如:

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

希望有帮助

于 2012-09-12T09:39:21.700 回答
0

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

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

或者

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

于 2012-09-12T09:41:52.917 回答
0

删除 Facebook 登录 URL 的offline_accessfromscope参数。

于 2012-09-12T09:39:03.527 回答