Play Framework 1.2.4:会话不会更改

时间:2012-07-12 13:46:14

标签: session playframework playframework-1.x securesocial

我正在开发一个Play Framework项目,我正在使用SecureSocial插件进行用户操作。

我的问题是,根据Play Framework文档,当我关闭浏览器选项卡并打开一个新选项卡时,会话应该已关闭并重置。

但是当我关闭并重新打开选项卡时,我发现会话ID仍然相同,用户无需重新打开登录页面即可直接登录(因为用户信息仍可在播放会话中使用)

这是我打开会话之前和之后的输出:

之前

session = {sid=86, ___ID=80519f26-ccf9-4e6f-9f9a-0f2a3bbc7b20, securesocial.network=userpass, ___AT=4241355a05e419dabc6e16612275b3d932133707, securesocial.user=test}

然后我关闭并在几秒钟后重新打开浏览器标签...

session = {___ID=80519f26-ccf9-4e6f-9f9a-0f2a3bbc7b20, sid=86, securesocial.network=userpass, ___AT=4241355a05e419dabc6e16612275b3d932133707, securesocial.user=test}
一切都是一样的。 有时会随机变化

顺便说一句,我在application.conf或其他任何地方都没有任何会话设置;一切仍处于默认设置。

2 个答案:

答案 0 :(得分:1)

SocialSecure使用Cookie - 它会检查用户之前是否已针对某个提供商进行了身份验证。删除cookie应该允许您从头开始测试功能。

在SecureSocial.java中(在controllers.securesocial中) - 您应该能够检查调用getAserId内部的位置(调用getUserId的位置)(它检查用户和提供者的cookie值)。

希望有所帮助

答案 1 :(得分:1)

我意识到这是现代浏览器的新“功能”。除非您完全关闭所有选项卡和浏览器本身(在osx中​​,右键单击并关闭),否则浏览器不会关闭会话,因此用户无需重新连接,直到他们完全关闭浏览器..

简而言之,只需关闭“标签”,您的会话就不会过期,但您必须完全关闭“浏览器”。