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