【发布时间】:2015-10-15 13:59:14
【问题描述】:
我的应用程序使用 Google OAuth2 和 Spring 安全性。示例实现是here。
问题是 >> 我有多个用户在我的 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接口维护多用户登录详情?
【问题讨论】:
-
这个问题可读性不强,可以通过截图来改进,并且需要对您用于创建登录情况的任何代码/配置文件进行更多解释。
-
我已经根据你的建议更新了@Nick
标签: google-app-engine spring-mvc spring-security google-cloud-platform gae-userservice