开发者问题收集

GoogleAuth.signOut() 不起作用

2017-04-01
2065

我的页面上有一个 Google 登录按钮,使用 gapi.signin2.render 呈现按钮( https://developers.google.com/identity/sign-in/web/reference#gapisignin2renderid-options )。

但是,尽管调用了 GoogleAuth.signOut(),它始终呈现为已登录。事实上,我实际上可以调用 GoogleAuth.signOut() 并立即检查 GoogleAuth.isSignedIn.get() 以检查状态并返回 true。

有人知道如何解决这个问题吗?我的退出代码如下:

var GoogleAuth = gapi.auth2.getAuthInstance();

GoogleAuth.signOut().then(() => {

    var status = GoogleAuth.isSignedIn.get(); //ALWAYS TRUE!!!!

    alert('IP.common.oAuth.signOut: signin status: ' + status);

}); 
1个回答

这应该可以正常工作。如果不需要,请删除 then(this.props.onLogoutSuccess))

signOut() {
   if (window.gapi) {
      const auth2 = window.gapi.auth2.getAuthInstance()
      if (auth2 != null) {
        auth2.signOut().then(auth2.disconnect().then(this.props.onLogoutSuccess))
      }
   }
}

如果你想学习如何使用 Google API https://github.com/anthonyjgrove/react-google-login ,这是一个非常好的库。是的,它是 React,但我认为方法应该类似。

DropDrage
2019-10-05