4

更新1:

你能给我一个关于如何在 play2 中管理 cookie 和会话的简短示例吗?(记住我功能)

好的,我想我了解播放身份验证背后的主要概念。

Zentasks 使用会话。我知道会话只存储在服务器上。play2 中的会话已经签名。饼干不是。

如果用户即使关闭浏览器也想登录怎么办?

我需要使用cookie。

我应该怎么办?

我是否创建了一个创建会话的 cookie?

例如

  • 用户有一个有效的 cookie
  • 获取 cookie val 并创建一个新会话

还是我完全放弃会话而只使用 cookie。因为 cookie 不是由 play2 自动签名的,所以我必须自己做,我做到了。

response().setCookie("remember",Crypto.sign(rnd) + "-" + obj.getClass().getName() + "-" + rnd,12000);

(我知道我还没有使用secured and http only标志使其安全)

我只是不想发明一个新的、有缺陷的系统。我希望你能帮我弄清楚如何在 play2 中确保身份验证安全。

4

2 回答 2

3

Play 中的会话范围只不过是签名(安全)cookie(它们存储在客户端,而不是服务器端!)

从上面的文档:

重要的是要了解 Session 和 Flash 数据 存储在服务器中,而是使用 Cookie 添加到每个后续 HTTP 请求中。

logged in因此您可以通过检查是否session scope's key 存在并与您的任何用户匹配来保持状态。

事实上的会话范围不会自动过期,因此您的用户将一直存在logged in,直到他单击logout操作链接(您只需在其中销毁会话的密钥)(仅在某些浏览器中)

于 2012-08-07T14:03:07.657 回答
0

这对我帮助很大

http://bazaar.launchpad.net/~opensource21/permsec/trunk/view/head:/psec/app

于 2012-09-06T14:02:41.833 回答