【发布时间】:2012-07-12 13:46:14
【问题描述】:
我正在开发一个 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 或其他任何地方都没有任何会话设置;一切仍处于默认设置。
【问题讨论】:
-
我的印象是 socialsecure 使用 cookie - 它检查用户之前是否已通过身份验证。因此,除非您继续删除 cookie,否则它不应从头开始(用于验证)
-
我认为在 SocialSecure.java 内部:调用 checkAccess - 它调用 getUserId(在其中检查 cookie 的用户和提供者)
-
是的,在 SocialSecure.java 中,cookie 正在使用 sessin.get(...) 从会话中调用。问题是会话没有像它应该的那样改变。
-
也许我误解了你的问题 - 将再次检查
-
只是为了我的利益 - 这是哪个浏览器和提供商?
标签: session playframework playframework-1.x securesocial