facebook - FB.getLoginStatus 即使在用户退出 Facebook 后也会返回一个 session

标签 facebook facebook-javascript-sdk

这让我发疯。用户登录到我的 Facebook 应用程序,做了一些事情。然后转到 Facebook 并注销。我有一个小计时器,每隔一段时间就会调用 FB.getLoginStatus() 来查看用户是否仍然登录。但是每当调用 FB.getLoginStatus() 时,它都会返回一个带有 session 对象的响应。什么鬼?它不应该返回未定义/未知吗?

我正在使用对 Facebook evar 的绝对最基本的调用:

FB.init({
    appId: 'MY APP ID',
    cookies: false,
    status: true,
    xfbml: false
});

FB.getLoginStatus(function (response) {
    if (response.session) {
        console.info("Session exists");
    } else {
        console.info("Session empty");
    }
});

setInterval(function () {
    FB.getLoginStatus(function (response) {
        if (response.session) {
            console.info("Session exists");
        } else {
            console.info("Session empty");
        }
    });
}, 10000);

我检查并仔细检查了使用允许请求的权限。我只要求电子邮件和短信。那么……有什么建议吗?

最佳答案

不要以艰难的方式去做。这种情况有一个简单的解决方案,只需在 getLoginStatus 方法中添加一个“true”语句作为第二个参数:

FB.getLoginStatus(function (response) {
   if (response === undefined || response.status === 'connected') {
      // Do something after logout
   }
}, true);

请注意,每次调用此函数都会使您的应用程序转到 Facebook 的服务器,并可能给您带来相当大的网络负载,具体取决于您的实现方式。希望这可以帮助!

关于facebook - FB.getLoginStatus 即使在用户退出 Facebook 后也会返回一个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6852562/

相关文章:

ajax - 从 Facebook 返回的 X-FB-DEBUG header 是什么?

facebook - 使用 Smack 集成 Facebook 聊天时 SASL 身份验证失败

javascript - 护照 Facebook 身份验证不起作用

php - Facebook API 使用 insights php sdk

cordova - iOS 上的 PhoneGap 2.1 和 Facebook SDK 3.1 - com.facebook.sdk 设备上的错误 2

javascript - 如何检索 Facebook 帖子详细信息?

iOS解析Facebook登录错误308 FBSDKLoginBadChallengeString

ios - 在 Facebook 上分享,手机上不显示文字。 ( swift )

javascript - Facebook API 登录 - 日志记录

javascript - Facebook 视频播放器 API xfbml.ready 无法在移动设备上运行。如何获取视频实例?