繁体   English   中英

如何使用JavaScript清除Facebook会话?

[英]How to clear facebook session using javascript?

最初的问题: Facebook注销URL在2014年不起作用?

好吧,我尝试注销,一个使用url从facebook上的用户,但无法正常工作,我使用了以下URL:

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,只有URL。

@ Update :好吧,我解决了使用我的应用程序注销用户的问题,通过使用facebook javascript SDK,它仅加载了sdk并调用了注销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'));

似乎至少有适用ipad的 信息亭应用程序 ,这些应用程序提供了自动清除浏览器会话的选项。 因此,如果您要使用ipad为信息亭创建应用,至少可以使用可以解决问题的应用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM