Google SignIn2不会调用成功回调

时间:2019-01-29 21:41:09

标签: vue.js google-oauth

我使用“ gapi.signin2.render”功能在页面上放置了一个google登录按钮。我将带有成功处理程序的对象传递给该函数。

当用户最初单击按钮时,一切都会按预期进行。出现Google登录弹出窗口。但是完成登录过程后,我的页面上什么都没有发生。

刷新页面后,该按钮再次触发身份验证过程。并在“登录”出现后立即调用成功处理程序。

我查看了网络流量,并看到了包含所有信息的响应。这意味着应在Google控制台中正确配置所有内容。否则我不会得到回应,对吧?

这是我的Vue组件:

<template>
  ...
  <div id="google-signin-button" class="g-signin2"></div>
  ...
</template>

<script>
  ...
  window.gapi.signin2.render('google-signin-button', {
     onsuccess: this.onSignIn,
  })
  ...
  onSignIn: function(googleUser) { }
<script>

这是index.html:

<meta name="google-signin-client_id" content="xxx.apps.googleusercontent.com">
<script src="https://apis.google.com/js/platform.js" async defer></script>    

我该怎么做才能在初始登录时调用成功处理程序?

1 个答案:

答案 0 :(得分:0)

好,我找到了。不幸的是,我误解了官方文档。

我必须先加载auth2模块:

window.gapi.load('auth2', () =>  {
  window.gapi.signin2.render('google-signin-button', {
    onsuccess: this.onSignIn,
  })
})