FB.logout() - 无访问令牌 - “以其他用户身份登录”

FB.logout() - no access token - "Log in as Different User"

本文关键字:用户 其他 身份 登录 访问令牌 logout FB      更新时间:2023-09-26

这个问题与这个问题有关:FB.logout() 在没有访问令牌的情况下调用

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

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

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

任何反馈都会很棒 - 尝试对此搜索一段时间,但无济于事。我可能想多了,但应该有某种方法可以"以其他用户身份登录"。

你可以执行以下操作:

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
    }
}

将您的注销修改为如下所示:-

              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发送注销请求,直到实际注销发生。

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

页面加载事件:

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

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