在Javascript注销后如何在PHP中检测Facebook登录状态?

时间:2013-06-03 21:44:36

标签: php javascript facebook sdk logout

我正在调用Javascript SDK中的FB.logout()和FB.login()函数。

在每种情况下,我都希望通过AJAX调用PHP“同步”脚本,以使我的服务器状态保持最新。例如:

FB.init({
    appId:'XXXXXXXXXXXXX',
    cookie: true,
    status : true,
    xfbml:true
});

FB.logout(function(response) {
    $.ajax({
    type: "POST",
    url: "http://mysite.com/sync.php",
    cache: false
    ...
    });
}

然后在sync.php脚本中:

    $user = $this->api->getUser();

    if ($user) {
        try {
            $me = $this->api->api('/me');
        }
        catch (FacebookApiException $e){
            error_log($e);
            $user = false;
        }
    }

    if ($user)
        echo json_encode(array("status" => "logged in"), JSON_FORCE_OBJECT);
    else
        echo json_encode(array("status" => "logged out"), JSON_FORCE_OBJECT);

所以在调用FB.logout之后,为什么sync.php总是返回“登录”状态?

我知道在调用Javascript FB.login()或FB.logout()之后我可以调用Facebook PHP登录或注销函数,但我是否真的必须这样做才能让两个SDK一起工作?

顺便说一句,sync.php脚本返回“登录”,无论我是在FB.logout()内立即通过AJAX调用还是稍后刷新页面。

感谢您的帮助。

0 个答案:

没有答案