Google中的idpiframe_initialization_failed从Localhost登录

时间:2017-09-28 15:26:09

标签: javascript google-api google-oauth google-signin google-plus-signin

我正在尝试按照 this link 创建一个谷歌登录按钮。到目前为止,帐户选择对话框即将到来,但之后我在控制台中看不到任何结果。相反,我在页面加载时收到此错误,

"idpiframe_initialization_failed", details: "Not a valid origin for the client: http://localhos…itelist this origin for your project's client ID."
details: "Not a valid origin for the client: http://localhost has not been whitelisted for client ID 386404527657-q4ss06np5g27dllq5ds7aif42udkh7e5.apps.googleusercontent.com. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID."

以下是代码,

<html lang="en">
  <head>
    <meta name="google-signin-scope" content="profile email">
    <meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
    <script src="https://apis.google.com/js/platform.js" async defer></script>
  </head>
  <body>
    <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"</div>
    <script>
      function onSignIn(googleUser) {
        // Useful data for your client-side scripts:
        var profile = googleUser.getBasicProfile();
        console.log("ID: " + profile.getId()); // Don't send this directly to your server!
        console.log('Full Name: ' + profile.getName());
        console.log('Given Name: ' + profile.getGivenName());
        console.log('Family Name: ' + profile.getFamilyName());
        console.log("Image URL: " + profile.getImageUrl());
        console.log("Email: " + profile.getEmail());

        // The ID token you need to pass to your backend:
        var id_token = googleUser.getAuthResponse().id_token;
        console.log("ID Token: " + id_token);
      };
    </script>
  </body>
</html>

我真的需要修复此问题并在我的控制台中获取结果。我不知道接下来要做什么来解决这个问题。需要帮助,谢谢!

6 个答案:

答案 0 :(得分:19)

我遇到了这个问题,this solution为我工作。

简而言之:清除浏览器缓存。

在Chrome中:设置→高级→清除浏览数据→缓存的图像和文件

答案 1 :(得分:5)

对我而言,必须取消选中“设置”>“站点设置”>“ Cookie”>“阻止的第三方Cookie”。

答案 2 :(得分:4)

只需清除缓存或以隐身模式打开URL。它:)。 您的问题将得到解决。

答案 3 :(得分:2)

我在多个提供Google登录功能的网站上遇到了此错误。 我必须在网站的“显示Cookie和其他网站数据”中“允许” accounts.google.com Cookie,以使其正常工作(重新加载页面后)。

可能是阻止浏览器中的第三方Cookie的原因是

答案 4 :(得分:1)

对我有用的解决方案是将该应用程序的Google Developer Console API中的来源列入白名单。

答案 5 :(得分:0)

文档说不要忽略两个关键步骤(“在阅读说明时,请不要忽略这两个关键步骤,这一点很重要:启用Analytics API这对我有用:

  1. 启用Analytics API
  2. 返回您的凭据,删除以前的OAuth 2.0
  3. 现在使用正确的来源创建新的OAuth