如何使用javascript清除facebook会话?

时间:2014-08-23 08:25:52

标签: javascript facebook scala facebook-graph-api

原始问题: Facebook注销网址无效2014年

好吧,我尝试使用网址从facebook登出但是无法正常工作, 我使用了这个网址:

https://www.facebook.com/logout.php?confirm=1&next=http://www.foo.com&access_token=XX

答案:url无法正常工作的问题是access_token = xxxx **& expiresIn = 123 **,expiresIn参数标记是URL无法正常工作的主要原因,但我最终使用了无论如何,JS SDK。但是我仍然遇到问题,任何人都可以帮我解决下面提到的更新问题。

我有一种情况,我无法使用javascript替代品。因为我没有使用Javascript SDK来开始登录用户。我正在构建的应用程序是在Scala中,所以我没有任何SDK,只是网址。

@ 更新:我解决了使用我的应用程序注销人员的问题,通过使用facebook javascript SDK,它只是加载sdk并调用logout api,下面的代码片段。

但我仍然遇到问题,即如果用户使用他们的Facebook帐户登录我的应用程序,但是然后在权限对话框中没有授予我的FB应用程序,则会有活动 facebook会话正在运行,无法清除或记录他/她(我正在构建 KIOSK APP ,因此这将是一个死锁条件)。

我无法使用 Logout API 将其注销,因此如何清除会话。我检查了各种SO帖子以清除会话cookie,但似乎都没有。

window.fbAsyncInit = function() {
  FB.init({
    appId      : 'xxxxxx',
    cookie     : true,  // enable cookies to allow the server to access 
                        // the session
    xfbml      : true,  // parse social plugins on this page
    version    : 'v2.1' // use version 2.1
  });
  FB.getLoginStatus(function(response) {
    if (response && response.status === 'connected') {
                FB.logout(function(response) {
                    document.location.reload();
                });
            }
  });
  };

  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));

1 个答案:

答案 0 :(得分:0)

至少 ipad 似乎有kiosk apps,它提供了自动清除浏览器会话的选项。因此,如果您使用ipad为自助服务终端创建应用程序,至少可以使用app来解决问题