【发布时间】:2013-01-03 23:10:52
【问题描述】:
如何使用 oauth2 客户端流程从 facebook 应用程序中注销?
我在官方文档中找不到任何方法:http://developers.facebook.com/docs/authentication/
【问题讨论】:
标签: facebook facebook-graph-api oauth
如何使用 oauth2 客户端流程从 facebook 应用程序中注销?
我在官方文档中找不到任何方法:http://developers.facebook.com/docs/authentication/
【问题讨论】:
标签: facebook facebook-graph-api oauth
您可以通过调用 FB.logout 使用 Javascript SDK 执行此操作。见https://developers.facebook.com/docs/reference/javascript/FB.logout/
但是,如果不使用官方 SDK 之一,我不确定如何做到这一点。
【讨论】:
看来您真的不需要注销,因为用于客户端流程的 webview 不存储已登录的用户。
【讨论】:
如果您使用新的 PHP-SDK,您需要从 JavaScript SDK 调用 FB.logout,并销毁服务器上的用户会话,因为新的 PHP SDK 将用户 ID 和访问令牌存储在PHP 会话。
我用:
$_SESSION = array();
session_destroy();
【讨论】:
将以下内容添加到您网站页面的最开头
session_start();
if($_GET['logoutfrmfb']=="logout")
{
unset($_SESSION['fb_{your app id}_code']);
unset($_SESSION['fb_{your app id}_access_token']);
unset($_SESSION['fb_{your app id}_user_id']);
}
在 src/base_facebook.php 中查找并编辑以下行(可能是第 506-515 行)
public function getLogoutUrl($params=array()) {
return $this->getUrl(
'www',
'logout.php',
array_merge(array(
'next' => $this->getCurrentUrl().'?logoutfrmfb=logout',
'access_token' => $this->getAccessToken(),
), $params)
);
}
为我工作!
【讨论】:
使用 FB.getLoginStatus 和 FB.logout JavaScript 函数。
【讨论】: