【问题标题】:TypeError: gapi.auth2 undefined类型错误:gapi.auth2 未定义
【发布时间】:2015-07-01 04:35:45
【问题描述】:

我完全按照集成 google 登录的说明进行操作:

https://developers.google.com/identity/sign-in/web/sign-in#specify_your_apps_client_id

登录有效,但退出时会出现 javascript 错误:

var auth2 = gapi.auth2.getAuthInstance();

错误是:

gapi.auth2 未定义

我按照说明包含了谷歌平台库:

    <script type='text/javascript' src='https://apis.google.com/js/platform.js' async defer></script>

为什么它不起作用?

【问题讨论】:

  • 我有一个在 javascript 中使用 Google 驱动器(也需要身份验证)的极简示例。整个示例完全包含在一个 170 行的 html 页面中:dannyruijters.nl/webtex/googledrive.html 也许这可以帮助您解决问题。

标签: google-openid


【解决方案1】:

signIn 和 signOut 是否在同一页面上使用? Div g-signin2 加载并初始化 gapi.auth2,因此只要它们在同一页面上,它就应该可以工作。

如果 signOut 在单独的页面上,您应该手动加载并初始化 gapi.auth2 库。

完整示例(您必须将 YOUR_CLIENT_ID 替换为您的实际 client_id):

<html>
<head>
   <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
</head>
<body>
  <script>
    function signOut() {
      var auth2 = gapi.auth2.getAuthInstance();
      auth2.signOut().then(function () {
        console.log('User signed out.');
      });
    }

    function onLoad() {
      gapi.load('auth2', function() {
        gapi.auth2.init();
      });
    }
  </script>
  <a href="#" onclick="signOut();">Sign out</a>

  <script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script>
</body>
</html>

【讨论】:

  • gapi.load 是否记录在任何地方?它似乎不是参考资料的一部分:developers.google.com/identity/sign-in/web/reference
  • @MicahZoltu 的观点相同。我的猜测是,如果您的页面上有 &lt;div class="g-signin2"&gt;&lt;/div&gt; 按钮(所有文档示例),API 将为您加载,因为按钮使用它,但对于我们没有按钮的情况,您必须告诉 @ 987654325@ 要加载哪些 API 的对象,因为它封装了 Google 的所有平台 API(并且可能发现加载所有这些 API 是不明智的)
  • 感谢您的解决方案,我被困了很长时间
  • 酷!!!!!!!!!!!!!!!!!!!!!这就是我一直在寻找的......我的注销在另一页上......我们可以看到以下内容吗? GoogleUser = GoogleAuth.currentUser.get(); if (GoogleUser.isSignedIn()) { document.getElementById("demo").innerHTML = "用户已经登录"; } else { document.getElementById("demo").innerHTML = "没有登录"; }
  • FIY,假设由于某种原因,您在用户使用 Google 登录后重新加载页面,然后,您需要手动加载并初始化 gapi.auth2 库。
猜你喜欢
  • 1970-01-01
  • 2019-10-31
  • 2016-08-07
  • 2019-01-07
  • 2020-01-28
  • 2021-10-24
  • 2014-10-17
  • 2022-01-10
  • 2019-12-24
相关资源
最近更新 更多