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 注销时如何将用户重定向回我的应用程序?