Chrome上的Google Auth API Javascript idpiframe初始化错误

Chrome上的Google Auth API Javascript idpiframe初始化错误,javascript,google-chrome,google-api-client,google-api-java-client,Javascript,Google Chrome,Google Api Client,Google Api Java Client,我使用GSuite,我正在编写一个非常简单的web应用程序来使用googleauthapi,我得到一个异常“idpiframe\u initialization\u failed” 现在我有了谷歌示例中所示的准确HTML: 1) 我在网上创建了一个项目 2) 我设置了OAUTH授权屏幕 3) 我已经创建了客户端ID,创建了限制和重定向URL 4) 我还创建了API密钥 5) 最后,我启用了People API,因为设置discoveryDocs参数时发现服务失败 通过所有这些步骤,当我调用ga

我使用GSuite,我正在编写一个非常简单的web应用程序来使用googleauthapi,我得到一个异常“idpiframe\u initialization\u failed”

现在我有了谷歌示例中所示的准确HTML:

1) 我在网上创建了一个项目

2) 我设置了OAUTH授权屏幕

3) 我已经创建了客户端ID,创建了限制和重定向URL

4) 我还创建了API密钥

5) 最后,我启用了People API,因为设置discoveryDocs参数时发现服务失败

通过所有这些步骤,当我调用gapi.client.init时,它只会在chrome中引发异常,我无法理解为什么

初始化API的代码为:

    gapi.client.init({
        apiKey: 'MY_API_KEY',
        discoveryDocs: ["https://people.googleapis.com/$discovery/rest?version=v1"],
        clientId: 'MY_CLIENT_ID.apps.googleusercontent.com',
        scope: 'profile'
    }).then(function (response) {
      // Listen for sign-in state changes.
      gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

      // Handle the initial sign-in state.
      updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
    },function(reason){
        console.log('onerror');
        console.log(reason);
      // Listen for sign-in state changes.
      gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

      // Handle the initial sign-in state.
      updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
代码正在运行错误块,消息为:

details: "Failed to read the 'localStorage' property from 'Window': Access is denied for this document."
error:"idpiframe_initialization_failed"
知道我为什么会犯这个错误吗


谢谢

我遇到了同样的问题。经过一段时间的投资,找到了原因。此错误是因为在chrome设置中,您启用了阻止第三方Cookie和站点数据选项

可以通过禁用此选项来解决此问题: 要查找设置,请打开Chrome设置,在搜索框中键入“内容设置”,单击“内容设置”按钮,然后查看Cookies下的第四项 取消选中“阻止第三方cookie和站点数据”框

希望这能帮助你解决问题

在我的例子中,我只需等待一段时间,谷歌就可以考虑来源了。我说不清到底花了多长时间。我等了大约30分钟。然后我就睡着了,第二天早上它就开始工作了


编辑:哦,我刚刚意识到我使用的是
http://
,而不是
https://
。这就是实际的问题。

我也遇到了同样的问题,我搜索了3天:解决“弹出窗口关闭用户”转到控制台。谷歌转到API管理:凭据:修改凭据:

授权的Javascript源代码(
http://localhost:port
); 授权重定向URI(
http://localhost:port/auth/google/callback

示例:| |授权Javascript源代码(
http://localhost:4200
);
授权重定向URI(
http://localhost:4200/auth/google/callback

问题在于谷歌的API控制台以及它如何处理创建凭据的问题。 只有当我通过下面的url访问它时,它似乎才起作用 有一个链接可用于创建应用程序和OAuth凭据。 当我转到控制台并通过该屏幕创建它时,它似乎不起作用。 在尝试重新创建并使用新的应用程序进行测试后,我发现添加到授权Javascript源的URL并不总是被添加

如果一切正常,那么url应该在凭据页面中可用

找到答案了吗?唯一的解决办法是使用OAUTH 2.0端点,如下所述:嗨,lavleen,你说得对。这就是问题所在。但我担心的是,我还没有在其他使用谷歌登录的网站上发现这个问题。这是否意味着每个人都使用URL重定向方法,而没有人使用JS API?嘿,David,就连我也在调查原因。同时,在寻找确切的原因时,我发现了这个。这对你也有帮助。请看一看。嘿,我还通过检查第三方cookies和数据选项测试了另一个应用程序。我发现这些应用程序强制允许设置cookie。若我们如上图所示禁用cookie,那个么谷歌登录在那个里就不起作用了。请试试这个。对我来说,我必须禁用AdBlock,这对我来说是有效的,尽管我已经为这个网站做了明确的“允许”。显然“允许”没有覆盖默认块?