繁体   English   中英

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

[英]$facebook->getUser() returns a userid after logout

如何检查用户是否真正登录? $facebook->getUser()在注销后仍返回ID。 我是否需要执行类似$facebook->api('/me')来检查用户是否“真正”登录?

好吧,我认为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 */
}

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

getLoginStatusUrl应该可以解决问题。 我认为,如果您要求offline_perms,则可以访问user_id等。 我不知道你是否这样做,但很可能应该是问题所在

您是否尝试过Facebook PHP SDK文档中详细介绍的方法?

$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。 您可以根据用户是登录,未连接还是注销Facebook来获得其他URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM