Javascript 如果已经在网上某个地方使用谷歌登录,如何正确登录web应用程序?

Javascript 如果已经在网上某个地方使用谷歌登录,如何正确登录web应用程序?,javascript,google-drive-api,google-oauth,Javascript,Google Drive Api,Google Oauth,我正在使用JavaScript制作一个web应用程序。 我可以登录,使用谷歌账户注销,甚至可以从谷歌硬盘读/写文件,但现在我发现了一个奇怪的例外 以下是我如何重现异常的方法: 我用空窗打开镀铬 我登录Google Drive 我从Visual Studio运行web应用程序的调试(web应用程序尚未发布,因此您无法对其进行测试) 现在,该web应用程序似乎使用相同的Google帐户登录,并开始从Google Drive(我想要的那个)获取文件,但该过程以某种方式被中断。 我在代码中做了一些检查,

我正在使用JavaScript制作一个web应用程序。 我可以登录,使用谷歌账户注销,甚至可以从谷歌硬盘读/写文件,但现在我发现了一个奇怪的例外

以下是我如何重现异常的方法:

  • 我用空窗打开镀铬
  • 我登录Google Drive
  • 我从Visual Studio运行web应用程序的调试(web应用程序尚未发布,因此您无法对其进行测试)
  • 现在,该web应用程序似乎使用相同的Google帐户登录,并开始从Google Drive(我想要的那个)获取文件,但该过程以某种方式被中断。 我在代码中做了一些检查,以确保web应用程序能够获取文件或返回错误,但只是有时我会得到“错误代码0”,而大多数时候我没有得到任何错误,也没有检索到任何文件

    我几乎可以肯定使用GoogleAPI有问题,但我不知道是什么。 当我运行web应用程序(在上面的例子中)时,Google的signin按钮会自动调用以下功能:

    function checkAuth() {
    gapi.auth.authorize(
        {
            'client_id': CLIENT_ID,
            'scope': SCOPES,
            'immediate': true
        },
        handleAuthResult);
    }
    
    因此,我的web应用程序似乎已登录,但无法运行

    事实上,我已经找到了一个解决方案,但在我看来这是一个糟糕的解决方案:如果我的web应用没有任何重要数据>>并且我在web上的某个地方登录了Google>>我就调用“signout()”函数

    因此,如果我再次登录我的web应用程序,一切都会正常工作


    你能给我一个更好的解决方案吗,尤其是避免在“注销”之后再加上我实际使用的另一个“登录”?

    我发现了问题。。。如果我在网上某个地方用Google登录后打开我的web应用程序,Google会以某种方式自动登录我的web应用程序,几毫秒后会调用“onSignIn()”函数,因此这就像双重登录一样会阻塞下一个代码。现在我不明白为什么会有双重身份验证。