使用g-signin按钮登录G+立即注销3次

8

我的头部代码如下:

<meta name="google-signin-clientid" content="XXXXXXX.apps.googleusercontent.com" />
<meta name="google-signin-cookiepolicy" content="single_host_origin" />
<meta name="google-signin-approvalprompt" content="auto" />
<meta name="google-signin-callback" content="signinCallback" />
<meta name="google-signin-scope" content="https://www.googleapis.com/auth/games" />

这是我的按钮代码:

<span id="signinButton"><span class="g-signin"></span></span>

以下是JavaScript代码:

function signinCallback(authResult) {
    if (authResult['status']['signed_in']) {
        console.log('Signed In');
    } else {
        console.log('Sign-in state: ' + authResult['error']);
    }
}
(function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/client:plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();

当我点击登录按钮时,会弹出一个对话框进行身份验证,然后控制台会打印以下内容:
  • 登录状态:已登录,时间为 Wed May 21 2014 17:31:05 GMT-0700 (PDT)
  • 登录状态:用户已注销,时间为 Wed May 21 2014 17:31:06 GMT-0700 (PDT)
  • 登录状态:用户已注销,时间为 Wed May 21 2014 17:31:06 GMT-0700 (PDT)
  • 登录状态:用户已注销,时间为 Wed May 21 2014 17:31:08 GMT-0700 (PDT)
我的页面上没有调用登出的代码,但它仍然被重复调用。前两个登出事件同时发生,最后一个大约2秒钟后发生。我在文档中找不到任何可以解释这种行为的内容。有什么想法吗?

我也遇到了同样的问题,但是我完全不知道发生了什么。 - meteoritepanama
你有没有找到解决办法?我也遇到了同样的问题。 - asutherland
1
不是一个好的解决方案。如果你按照下面的答案并撤销权限,它对我来说解决了问题。这并不是很好,因为任何试图访问您的服务的人都可能遇到这个问题,但是谷歌团队无法弄清楚发生了什么。这是权限页面的链接:https://security.google.com/settings/security/permissions - matt snider
是的,对我来说这在现场生产代码中,并且是我们客户投诉的头号原因。要求每位客户取消访问权限并重新授权对我们来说是一个很大的痛点。 - asutherland
1个回答

3

我曾经遇到类似的问题,解决方法是在我的谷歌账户中撤销了我的应用程序的访问权限,这样当我之前授予开发环境访问权限时,我就必须重新授予生产应用程序的访问权限。


1
是的,我已经找到了一些解决方法,比如在隐身标签页上登录,但这些都不是真正的解决方案,无法适用于商业应用程序。我已向G+提交了一个错误报告,他们已经承认出现了问题,但还不知道具体原因。 - matt snider
@mattsnider,您能提供您提交的问题链接吗? - Jules
如果您可以访问谷歌的内部错误跟踪系统,那么它就是b/15282009。我们找到的唯一解决方案是撤销访问权限,正如@Rikard所建议的那样。一旦被撤销,我就无法重现这个问题。 - matt snider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接