【问题标题】:google app engine cross module session (java, guice)谷歌应用引擎跨模块会话(java,guice)
【发布时间】:2014-12-24 19:20:22
【问题描述】:

我有一个使用模块模式的 gae 应用程序(java、gae 1.9.14、guice 3.0)。每个模块都服务于一个单页应用程序(html 和 js)。 一个模块验证用户(电子邮件/密码),然后重定向到另一个模块。我面临的问题是,每次我最初访问不同的模块时都会创建一个新会话。

真的有办法跨模块共享会话数据吗?如果没有,我将如何实现这样一个简单的用例?

提前致谢!

【问题讨论】:

    标签: java google-app-engine session guice


    【解决方案1】:

    当用户通过身份验证时,将用户详细信息存储在新实体中,如 session ,详细信息如用户 IP 地址、浏览器详细信息和用户电子邮件 ID。

    在每个模块上写入过滤器{on initial req}并根据req ip地址获取用户电子邮件,来自新创建的实体会话的浏览器详细信息,更新新的httpsession。

    当用户从应用程序注销时从实体中删除记录

    【讨论】:

    • 嘿,谢谢你的回答,我想过(类似的)这个。但我不认为这是一个好主意。应该只有一个身份验证点(即用户名/密码请求),而不是第二个请求,具体取决于客户端。考虑一下:两个用户在路由器后面登录(暴露相同的客户端 IP 地址,使用相同的浏览器)。不知何故,第二个用户获得了更快的重定向。然后会发生的是,第二个用户使用第一个用户凭据登录。
    • 身份验证后在超级域上创建cookie并检查每个请求的cookie
    【解决方案2】:

    我现在正在生成一个身份验证令牌,我将其与帐户一起存储在数据库中,并在登录时将其传递给客户端。客户端使用此令牌在另一个模块中再次进行身份验证(将其存储在本地存储中)。在模块中成功认证后,令牌被销毁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      • 2011-10-02
      相关资源
      最近更新 更多