注销JS SDK不会注销PHP SDK
问题描述:
我有一个使用PHP SDK和JS SDK的网站。注销JS SDK不会注销PHP SDK
更新到OAuth后,我注意到注销JS并没有实际登录用户的PHP。
看起来像一般的解决方案是打电话给'/我',然后,如果该错误,假设用户已注销。但是,我不需要在每个页面渲染上调用/ me,我只想知道用户是否登录,而不会在每个渲染上发生FB API调用的性能影响。
有没有办法让PHP SDK知道通过JS SDK发生的注销?
有些事情我已经试过:
- 注释掉setPersistentData的Facebook.php
- 内容手动删除FBSR _ :: :: APPID饼干
谢谢!
答
setcookie(session_name(), '', time()-42000, '/');
unset($_SESSION);
答
从Facebook库
$access_token = $this->facebook->getAccessToken();
获取用户访问令牌,然后使用该代码的注销功能
if ($this->facebook_user)
{
$logoutUrl = $this->facebook->getLogoutUrl()."&access_token=".$access_token;
redirect($logoutUrl);
}
,并在Facebook的库文件中的一些变化。
public function getLogoutUrl($params=array()) {
return $this->getUrl(
'www',
'logout.php',
array_merge(array(
'next' => $this->getCurrentUrl(),
), $params)
);
}
您是否尝试过类似AJAX调用一个页面,这个['$ facebook-> destorySession()'](https://github.com/facebook/php-sdk/blob/master/src/ base_facebook.php#L1088)方法在JS回调? – ifaour
看看这个最近更新到PHP SDK:https://github.com/facebook/php-sdk/commit/4b0e00096c01a959c3f7d9b0655856c17c46383f也许你可以找到它相关的 –
SDK的版本我没有destroySession,这似乎工作。谢谢! –