如何使用 Scala Play 框架处理会话?

How to handle session using Scala Play framework?

我的应用程序中有用户登录功能。我使用 Scala Play Framework 作为控制器。我使用 withSession('userId'->userIDValue) 为不同的用户创建会话。我的应用程序有一个功能,将有一个超级用户,超级用户可以删除用户。现在发生的情况是,如果超级用户删除了一个用户,但该用户已登录,那么该用户的会话为 运行,直到浏览器的 cookie 过期。 Play Framework 是无状态的;有什么办法可以解决这个问题吗?

对于传入的请求,我认为您需要验证用户在 Play 端是否仍然处于活动状态,而不仅仅是信任会话。

如果这是一项昂贵的操作,例如,您必须进行数据库调用以验证用户是否仍处于活动状态,那么也许您可以使用播放缓存 API。如果您只有一个 Play 服务器实例,那么它应该非常简单——您可以在超级用户删除用户时在缓存中设置一些内容,并让缓存项的有效期长于您的 cookie 有效期。如果您有多个 Play 服务器实例,那就更麻烦了。 :)