google-openid - 类型错误 : gapi. auth2 未定义

标签 google-openid

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

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

登录有效,但注销会在行中出现 javascript 错误:

var auth2 = gapi.auth2.getAuthInstance();



错误是:

gapi.auth2 undefined



我按照说明包含了谷歌平台库:
    <script type='text/javascript' src='https://apis.google.com/js/platform.js' async defer></script>

为什么它不起作用?

最佳答案

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

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

完整示例(您必须用您的实际 client_id 替换 YOUR_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>

关于google-openid - 类型错误 : gapi. auth2 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29815870/

相关文章:

google-oauth - openid_id 标识符可以通过 Google 的 OpenID 连接服务使用多久

google-authentication - 我可以为 Google OpenIDConnect id_token 获得一致的 'iss' 值吗?

javascript - GoogleUser.signIn 不是函数

oauth-2.0 - 无法再使用新的 Google OAuth 2.0 token 端点 (v3) 进行身份验证

oauth - 使用openid4java的YouTube OpenID + OAuth

jenkins - Gerrit 和 Jenkins 的 Google 身份验证

google-openid - 哪种 Google 登录流程最适合 Web 应用程序?

openid - 为什么 Google 的 OpenID 实现的 ID 会发生变化?

openid - 谷歌 OpenID : the page you requested is invalid

asp.net - Google OpenId Connect 迁移 : getting the openid_id in ASP. NET 应用程序