我一直在使用Laravel上的facebook SDK遇到一些问题。
这是我的代码:
public function get_index() {
$facebook = IoC::resolve('facebook-sdk');
try {
$fb_id = $facebook->getUser();
if ($fb_id) {
$token = array(
'access_token' => $facebook->getAccessToken()
);
$fb_data = $facebook->api('/'.$fb_id.'?', $token);
print_r($fb_data);
} else {
$url = $facebook->getLoginUrl(array(
'scope' => Config::get('facebook.scope'),
'redirect_uri' => Config::get('facebook.landing_page')
));
echo "<script> top.location.href='".$url."'</script>";
}
} catch (FacebookApiException $exc) {
$fb_id = NULL;
echo $exc;
}
}
如果我从Facebook注销,它仍然会给我fb_uid。发生的奇怪事情是,如果我使用其他帐户登录,则不会打印当前登录帐户,而是打印最后一个帐户。 “销毁”用户的唯一方法是删除cookie。
我一直在使用CodeIgniter,代码工作得非常完美。现在我正在学习Laravel并尝试在其上测试我的代码,但如果这不起作用则无法继续。
发生什么线索?
答案 0 :(得分:0)
我发现用户需要注销应用程序本身才能重置用户ID。您可以通过调用$facebook->getLogoutUrl();
答案 1 :(得分:0)
您还必须从应用程序中注销当前登录的用户。因此,每当用户从您的应用程序注销时,您还应该销毁用户的Facebook会话。
尝试此操作以在注销时销毁用户的facebook会话:
$facebook = IoC::resolve('facebook-sdk');
$facebook->destroySession();