1

我的应用程序使用Google OAuth2以及Spring安全性。示例实现是hereGoogle App Engine - 多用户会话

问题是>>我有多个用户在我的Chrome浏览器中签名。用户可以是普通的Google用户或Google Apps域用户。我没有得到为什么我的应用程序重定向到 https://appengine.google.com/_ah/loginform?state=####

The first user selection page 当我从提供的选项中选择一个用户后,UserService接口将获得所选用户的凭证。但在此之后,我会收到有关帐户选择器页面的提示。

enter image description here

在我的应用程序已经使用createLoginURL(UserService的)重定向用户到登录页面。另外,如果我从帐户选择器页面中选择了其他用户,则第二个用户服务器仍会保留从第一页中选择的用户的凭据。

我卡在这里的问题是如何根据用户选择更新我的UserService。另外,如果用户从Google的页面切换到第二个帐户(搜索,驱动器,邮件等),我如何使用更改后的用户凭据重新实例化UserService。有没有什么办法可以使用请求头或任何其他值的'authUser'或'session_state'来触发应用程序中由于用户更改而引发的事件。我知道,Google App Engine上的会话使用数据存储实体“_ah_SESSION”进行维护,我也有一个cron来移除过期的会话。如果浏览器只有一个用户登录Google,一切正常。

总之,如何使用UserService界面维护多个用户登录详细信息?

+0

这个问题不是非常可读,可以通过屏幕截图得到改进,并且需要更多解释您用于创建登录情况的任何代码/配置文件。 – Nick

+0

我已根据您的建议@Nick更新 – akgaur

回答

0

如果您已经注意到哪个用户登录到您的应用程序与哪个用户已登录并在另一个选项卡中处于活动状态(例如gmail或驱动器等Google服务)无关,如您所解释的,由于会话cookie存储在你的应用程序中,以及它们没有从Gmail,驱动器等标签上的任何“信号”更新。如果您想使用用户服务管理App Engine上的多个登录,您应该明星并捅this public issue tracker feature request