【问题标题】:Google App Engine - Multiple User sessionsGoogle App Engine - 多用户会话
【发布时间】: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


【解决方案1】:

如果您观察到哪个用户登录到您的应用程序独立于哪个用户登录并在另一个选项卡中为 gmail 或驱动器等 google 服务活动,正如您解释的那样,这是由于会话 cookie 在您的应用程序上的存储,以及它们不会根据来自 gmail、驱动器等选项卡的任何“信号”进行更新的事实。如果您想使用用户服务管理 App Engine 上的多个登录,您应该加注星标并戳this public issue tracker feature request。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-14
    • 2013-06-26
    • 1970-01-01
    • 2013-08-14
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    相关资源
    最近更新 更多