[英]$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.