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