Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用gapi.auth.signOut注销_Javascript_Google Api Js Client - Fatal编程技术网

Javascript 无法使用gapi.auth.signOut注销

Javascript 无法使用gapi.auth.signOut注销,javascript,google-api-js-client,Javascript,Google Api Js Client,我正在我的网络应用AngularJS中集成Google社交登录。我无法注销该用户。 以下是我略为简化的方法- 情景1。首次用户- 我有自己的按钮,单击该按钮可加载页面“X”。此页面将用户重定向到Google登录和/或应用程序权限批准页面。 最后,X将用户返回到我的站点。我收到了通过谷歌登录的信息,现在我必须通过gapi登录,以便以后可以注销 登录可以通过两种方式实现- gapi.auth.authorize with immediate:true或 带有“immediate”的gapi.auth

我正在我的网络应用AngularJS中集成Google社交登录。我无法注销该用户。 以下是我略为简化的方法-

情景1。首次用户-

我有自己的按钮,单击该按钮可加载页面“X”。此页面将用户重定向到Google登录和/或应用程序权限批准页面。 最后,X将用户返回到我的站点。我收到了通过谷歌登录的信息,现在我必须通过gapi登录,以便以后可以注销

登录可以通过两种方式实现-

gapi.auth.authorize with immediate:true或 带有“immediate”的gapi.auth.sign:true 我两者都试过了。两者都不起作用。第二个缺点是浏览器显示弹出窗口被阻止

然后有一个注销按钮,它调用gapi.auth.signOut并加载页面“Y”。 页面Y返回到我的站点,场景2被触发,如下所示,加载登录页面:

情景2。返回同一浏览器中的用户

使用下面的代码,首先我检查是否有google acess_令牌,这样我就可以尝试通过google登录

gapi.auth.authorize({
    client_id: self.googleAppId,
    immediate: true,
    scope: ['https://www.googleapis.com/auth/plus.me'],
    cookie_policy: window.location.protocol+'//'+window.location.hostname
}, function (response: any) {
    console.log(response);
    if (response.access_token) {
        self.googleLogin(response.access_token);
    }
    else {
        self.loadHome();
    }
});
googleLogin加载另一个页面“Z”,该页面重定向回我的原始页面。 Z在URL中向我传递参数,这样我就知道我已经通过Google登录了。我回到场景1

问题是-如果用户已使用gapi.auth.signOut注销,那么为什么场景2中的gapi.auth.authorize会返回访问令牌? 在第二个场景中,我如何区分已登录用户和已注销用户

在第二个场景中,我尝试用gapi.auth.sign替换gapi.auth.authorize。 但这会在我的索引页面加载后立即加载google登录页面。所以我没有进一步探究

请让我知道我哪里出了问题,以及如何解决这个问题