在LARAVEL上注销后仍然获得Facebook用户ID

时间:2013-05-27 19:42:49

标签: facebook-php-sdk laravel

我一直在使用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并尝试在其上测试我的代码,但如果这不起作用则无法继续。

发生什么线索?

2 个答案:

答案 0 :(得分:0)

我发现用户需要注销应用程序本身才能重置用户ID。您可以通过调用$facebook->getLogoutUrl();

来注销用户的网址

答案 1 :(得分:0)

您还必须从应用程序中注销当前登录的用户。因此,每当用户从您的应用程序注销时,您还应该销毁用户的Facebook会话。

尝试此操作以在注销时销毁用户的facebook会话:

$facebook = IoC::resolve('facebook-sdk');
$facebook->destroySession();