Google+ 登录将用户注销

Posted

技术标签:

【中文标题】Google+ 登录将用户注销【英文标题】:Google+ signin signs user out 【发布时间】:2014-06-16 18:29:16 【问题描述】:

当用户登录多个 Google 帐户时,我遇到了问题。

我的应用程序有一个带有 Google+ 登录按钮的登录页面。

用户单击按钮并授权应用程序。

signinCallback 被正确触发。然后应用程序会呈现一个新页面,该页面具有隐藏的登录按钮(允许用户退出)。呈现此页面时,将再次触发 signinCallback,但在错误字段中显示“user_signed_out”。状态包含:

google_logged_in: true
method: null
signed_in: false 

我没有看到处理此错误的方法。

还有其他人遇到过这个问题吗?

【问题讨论】:

我也遇到了这个问题。我不知道是什么原因造成的。 【参考方案1】:

我认为您没有撤销您请求的访问令牌。如果您使用的是 javascript,请使用它。撤销访问令牌将允许您为其他用户请求另一个令牌。

        var revokeUrl = 'https://accounts.google.com/o/oauth2/revoke?token=' + access_token;
        $.ajax(
            type: 'GET',
            url: revokeUrl,
            async: false,
            contentType: "application/json",
            dataType: 'jsonp',
            success: function(nullResponse) 
                //do logout call back here

            ,
            error: function(e) 
               console.log(e);
            
        );

【讨论】:

【参考方案2】:

问题似乎是,虽然我在两个页面上都包含了A 登录按钮,但它不是相同的 登录按钮。似乎当用户最初登录时,该状态保存在该页面上的登录按钮中。因此,当应用程序使用该登录按钮离开页面时,会发生奇怪的事情。由于同样的问题,我面临的另一个问题是用户无法退出。

【讨论】:

【参考方案3】:

添加另一个用于唱歌的按钮。比点击只需调用

gapi.auth.signOut();

可以是任意按钮,look here。

【讨论】:

【参考方案4】:

当我执行以下操作时,我在测试站点上遇到了完全相同的问题

testsite.com

但是,当我将其更改为 www.testsite.com 时,它完美无缺地运行。

请确保你们拥有正确的子域。

【讨论】:

以上是关于Google+ 登录将用户注销的主要内容,如果未能解决你的问题,请参考以下文章

检测用户登录/注销 xmpp google app engine

执行 Auth0/Google 联合 SSO 注销时如何将用户重定向回我的应用程序?

开放标识。你如何注销

Google 使用 g-plus 最新 API 在 android 中登录和注销

如何在颤动中自动注销firebase用户?

从 Google 登录集成 android 注销