2

我正在开发一个 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顺便说一句,我在其他任何地方都没有任何会话设置;一切仍处于默认设置。

4

2 回答 2

1

SocialSecure 使用 cookie - 它检查用户之前是否已通过特定提供商的身份验证。删除 cookie 应该允许您从一开始就测试功能。

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

希望能帮助到你

于 2012-07-12T15:52:59.827 回答
1

我意识到这是现代浏览器上的一个新“功能”。除非您完全关闭所有选项卡和浏览器本身(在 osx 中,右键单击并关闭),否则浏览器不会关闭会话,因此用户在完全关闭浏览器之前不需要重新登录。

简而言之,您的会话不会因关闭“选项卡”而过期,但您必须完全关闭“浏览器”。

于 2012-09-19T12:49:23.047 回答