在Facebook SDK Javascript中注销

在Facebook SDK Javascript中注销,javascript,facebook,facebook-javascript-sdk,Javascript,Facebook,Facebook Javascript Sdk,在我的应用程序中,我可以登录到Facebook,但无法注销。当我点击按钮时,我会得到哪个调用注销功能: Object { authResponse: null, status: "unknown" } 这是我的密码: function login_to_fb() { FB.login(function(response) { if (response.status === 'connected') { window.location.reload(); }

在我的应用程序中,我可以登录到Facebook,但无法注销。当我点击按钮时,我会得到哪个调用注销功能:

Object { authResponse: null, status: "unknown" }
这是我的密码:

function login_to_fb() {
  FB.login(function(response) {
    if (response.status === 'connected') {
      window.location.reload();
    }
  }, {
    scope: 'email'
  });
}

function logout_from_fb() {

  FB.getLoginStatus(function(response) {
    console.log(response);
    if (response && response.status === 'connected') {
      FB.logout(function(response) {
        window.location.reload();
      });
    }
  });
}

我想是因为我刷新了页面。没有它,脚本工作正常,但当我登录并刷新页面时,就不可能注销。如何保存它?

结果可能已缓存。尝试将true作为第二个参数传递以清除缓存:

FB.getLoginStatus(function(response) {
    // this will be called when the roundtrip to Facebook has completed
}, true);

真奇怪。它只在我第一次使用它时才起作用。然后我登录并再次尝试注销,但我收到了与更改前相同的答案。怎么回事?我想是因为我重新加载了页面,同时访问令牌丢失了。我如何“保存”这个访问令牌?如果不刷新,我可以登录和注销,但当我登录并刷新页面时,则无法注销。@Roberto,当您重新加载页面时,您可以使用类似localStorage的内容来保存用户以前是否登录过,然后查看此示例页面的Facebook登录部分中的推荐代码()这是可能的,但我到底需要在localStore中存储什么?fb如何知道它在localStore中,我可以做类似“response.authResponse.accessToken=localStorage.getItem('token_fb')”这样的事情吗?