$ facebook-> getUser()在注销后返回用户ID

时间:2011-12-15 09:37:25

标签: php facebook-login

如何检查用户是否确实已登录?注销后$facebook->getUser()仍会返回ID。我是否需要执行$facebook->api('/me')这样的操作才能检查用户是否“真正”登录?

3 个答案:

答案 0 :(得分:5)

嗯,我认为FB PHP SDK非常棘手,因为它依赖于Facebook登录Facebook时发送的cookie。注销时不会删除此cookie。因为在下面的代码中,变量$ uid可以存储正确的用户facebook id:

$uid = $facebook->getUser();

因此,据我所知,致电$facebook->api('/me');会说明用户是否已登录。

try {
   $facebook->api('/me');
   /* user is really logged into FB */
} catch (Exception $e) {
   /* user is not currently logged into the FB */
}

我在生产应用程序中使用上面的代码,效果很好。

答案 1 :(得分:2)

getLoginStatusUrl应该做到这一点。 我认为如果你要求offline_perms而不是你有权访问user_id等等。我不知道你是否这样做,但很可能那应该是问题

答案 2 :(得分:0)

您是否尝试过Facebook PHP SDK Documentation详细说明的方法?

$params = array(
  'ok_session' => 'https://www.myapp.com/',
  'no_user' => 'https://www.myapp.com/no_user',
  'no_session' => 'https://www.myapp.com/no_session',
);

$next_url = $facebook->getLoginStatusUrl($params);
  

根据用户在Facebook上的登录状态返回一个URL。您可以   根据用户是否登录获取不同的URL,而不是   连接或退出Facebook。