FB.logout() - 没有访问令牌 - “以不同用户身份登录”

时间:2012-05-24 20:35:18

标签: javascript facebook facebook-javascript-sdk

这个问题与这个问题有关:FB.logout() called without an access token

我有一个问题,我希望有人能帮忙。

我在上面的链接中得到了所有内容,但是当有人使用公共计算机并且让他们自己登录到FB时,您如何处理?然后新用户尝试登录到应用程序,但不是他们。我希望有一个按钮将它们完全记录在FB之外,以“以其他用户身份登录”。

在他们授权应用程序之前我不能这样做,对吗?那么他们需要在其他人的帐户下授权该应用程序,然后注销?必须有另一种方式。

任何反馈都会很棒 - 尝试在此搜索一段时间,但无济于事。我可能会过度思考,但应该有一些方法可以“以不同的用户身份登录”。

3 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

FB.getLoginStatus(function(response) {
    if (response.status === "connected") {
        FB.api("me", function(response2) {
            //  notify the user he is logged in as response2.name, and if it's not him call FB.logout
        }
    }
    else {
        // prompt the user to login
    }
}

答案 1 :(得分:0)

将您的退出修改为以下内容: -

              function logout(response){
        console.log("From logout" + response);
        if(!response.authResponse){
            window.location = "/web/login/";
            return;
        }

           FB.logout(function(response){
               FB.Auth.setAuthResponse(null,'unknown');  
                 logout();
           });
        }

即继续向Facebook发送退出请求,直到实际退出为止。

答案 2 :(得分:0)

尝试使用Session并在该会话中保存用户的ID。 您可以控制该会话的到期时间(默认情况下,如果用户在页面上没有任何活动,则为20分钟) 然后在每个页面中加载甚至检查该季节是否仍然对该用户有效。

页面加载事件:

if(Session["LoggedIn"]==null)
{
Response.Redirect("~/Login.aspx");
}

如果会话已过期,此代码会将用户重定向到您网站的登录页面。