用户从Facebook注销,但网站仍然获取他的数据

时间:2012-04-03 16:30:21

标签: php facebook api

我有以下代码:

$fb = new Facebook(array('appid'=>APPID, 'appsecret'=>APPSECRET));
$user = $fb->getUser();

if($user)
{
try {
$me = $fb->api('/me');
}
catch(FacebookApiException $e) {
error_log($e);
enter code here
$user = null;
}

if($user) { blah blah blah

如果用户没有登录并且用户登录,它可以正常工作。但是,只有当他点击$fb->getLogoutUrl()的链接并成功从Facebook注销时,我的应用仍会保留他的数据。我读到如果用户注销但尝试$fb->api('/me')应该抛出异常。清除$_SESSION表会有所帮助,但我认为这不是正确的解决方案。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为这可能是由于facebook的扩展访问令牌(我不确定)造成的,它基本上与离线访问相同(事实上取代它:https://developers.facebook.com/roadmap/offline-access-removal/)但是60天。

所以我认为没什么好担心的。我不确定你的意思是:

  

清除$ _SESSION表有所帮助,但我不认为这是正确的   溶液

由于我不确定你是什么“清除”,你可能正在清除accessToken在这种情况下,是的,这将阻止你访问用户信息,但要注意它不会让你的应用程序失效。登录和退出是与auth和deauth完全不同的两件事。 / me url通常只会在您允许访问的情况下抛出异常,即用户已取消您的应用程序。

我认为在注销(destroySession)之后使用$fb->destroySession()可以通过销毁您身边的Cookie并重置用户访问来解决您的大多数问题。