10

完全迷失了这一点,文档并没有真正对此提供任何见解......

在我的应用程序中使用 Facebook Javascript SDK 并使用此登录按钮代码:

<fb:login-button scope="manage_pages,read_insights,ads_management" autologoutlink="true" size="large"></fb:login-button>

根据文档,一旦用户登录,autologoutlink=true参数就会将login按钮变为。我想保留此功能而不是编写自己的按钮代码log out

该事件调用FB.logout但仍然在回调中返回错误消息

FB.Event.subscribe('auth.logout', function(response) {                                              
    FB.logout(function(response) {
        // FB.logout() called without an access token.
    });
});

我想使用 Facebook 登录小部件而不是我自己的登录按钮,因此同一主题的其他答案无济于事。我不明白我应该如何通过 access_token 来证明我有权注销......

4

2 回答 2

35

显然这是不可能的,至少我无法弄清楚。Log Out快速解决方案是从自定义按钮调用此函数:

function fbLogoutUser() {
    FB.getLoginStatus(function(response) {
        if (response && response.status === 'connected') {
            FB.logout(function(response) {
                document.location.reload();
            });
        }
    });
}

页面重新加载向 Facebook 发出另一个请求,然后 Facebook 看到未经授权的状态并从浏览器中删除 cookie,这反过来又使 access_token 无效。所以这会从网站和 Facebook 中注销用户。

于 2013-11-07T18:56:55.523 回答
-1

尝试这个:

function fbLogoutUser() {
FB.getLoginStatus(function(response) {
    if (response && response.status === 'connected') {

        FB.logout(function(response) {
            document.location.reload();
        });
    } else if (response.status === 'not_authorized') 
        {
             FB.logout(function(response) {
            document.location.reload();
            });
        }
});}
于 2015-02-07T12:06:43.867 回答