1

我的应用程序使用 Google OAuth2 和 Spring 安全性。示例实现在这里

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

第一个用户选择页面 从提供的选项中选择用户后,UserService 界面将获取所选用户的凭据。但在此之后再次提示我使用帐户选择器页面。

在此处输入图像描述

在我的应用程序中,我使用了 UserService 的 createLoginURL() 将用户重定向到登录页面。此外,如果我从帐户选择器页面选择不同的用户,第二个提示的用户,UserService 仍然保留从第一页选择的用户的凭据。

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

简而言之,如何使用 UserService 接口维护多个用户登录详情?

4

1 回答 1

0

如果您观察到哪个用户登录到您的应用程序独立于哪个用户登录并在另一个选项卡中为 gmail 或驱动器等 google 服务活动,正如您所解释的,这是由于存储您的应用程序上的会话 cookie,以及它们没有在 gmail、驱动器等选项卡中的任何“信号”上更新的事实。如果您想使用用户服务管理 App Engine 上的多个登录,您应该为这个公共问题跟踪器功能请求加注星标和戳戳。

于 2015-10-19T17:29:08.753 回答