我一直在使用this documentation集成Google登录 . 但是,通过几种排列,它实际上从不执行回调函数 . 我试过在一个单独的页面上隔离它,没有别的办法来排除来自其他库的干扰:

<html>
  <head>
    <meta name="google-signin-client_id" content="***.apps.googleusercontent.com">
    <script src="//apis.google.com/js/platform.js" async defer></script>
  </head>
  <body>
    <div class="g-signin2" data-onsuccess="onSignIn"></div>
    <script>
      function onSignIn(googleUser)
      {
        console.log(googleUser.getBasicProfile().getName());
      }
    </script>
  </body>
</html>

一些观察:

  • 我试图在本地测试它并部署到 生产环境 服务器 .

  • 库正在正确加载并正在读取API密钥,因为从控制台中的授权源列表中删除 生产环境 域会导致 redirect_uri_mismatch 错误 .

  • 我尝试过使用Web客户端和OAuth客户端密钥;都不会产生不同的结果 .

  • 登录按钮按预期呈现,并在单击时生成弹出窗口 . 如果已注销或未经过授权,则会通过通常的登录流程 . 在随后的点击中,它会短暂显示并关闭 . 该项目确实出现在'Signing in with Google'下'Apps with access to your account.'

  • 这些都不会导致任何输出到控制台 .

  • 上述页面中的注销方法将运行并执行其承诺,但没有效果(即再次单击'Sign in'会导致弹出窗口闪烁并且不会发生任何事情) .

  • 我也尝试过使用 gapi.auth2.init onload,它按预期运行,但是回调中的签名仍然没有执行 .

由于使用逐字的示例代码不起作用,我已经没有想法尝试而有点困惑 .