Play for Scala:遍历所有活动会话

Play for Scala: traverse all active sessions

为了标记已登录到我的 Play 网络应用程序的用户,我在会话中存储了一个标志,如下所示:

Ok("Success").withSession("LoggedIn"-> "Yes")

现在,我需要知道当前登录的用户数量和他们的姓名,这是否可以不使用缓存?

没有。 withSession 使用您提供的数据在客户端浏览器中设置一个 cookie,但不存储该数据服务器端。无法确定您分发了多少活动 cookie,除非您添加服务器端代码来跟踪它们。

不过,将此数据存储在像这样的普通会话中还有许多其他缺陷。例如,客户端可以篡改 cookie,使其看起来好像已登录。最好使用现有且经过审查的身份验证库,如 Play2-auth、SecureSocial 等,而不是自己动手。