我想要做的是在我的Play应用程序中实现一个简单的身份验证机制。与Play在ZenTask Tutorial中完成的不同,我认为在会话中存储经过身份验证的用户(仅限于)的会话ID并不是一个好主意(在Play中,它是一个签名cookie),因为服务器会对已登录的用户的登录状态没有任何控制权限。用户帐户的图像被删除,或者您想强制执行特定用户的注销 - 如果此用户拥有有效的Cookie,则仍然会成功通过身份验证下一个请求,因为服务器只会检查Cookie中是否存在会话标识。使用Play缓存API来存储用户会话ID?
所以我想知道:如何使用Play缓存API存储用户的会话ID?在每个页面请求中,可以在缓存中查找请求中包含的会话ID。如果它不存在,那么用户必须登录
的好处,从我的观点:
- 提到的问题了。因为缓存内容可以在服务器端进行更改,因此已删除登录的用户或用户不再登录。
- 目前,我不需要多台计算机用于播放应用程序,因此Play可以内部使用EHCache。如果我需要扩展并且将来需要部署额外的机器,EHCache可以被外部和分布式memached服务器所取代,而无需更改代码。
您怎么看?
谢谢,会试试看。最后一件事:你提到的优势不是可用性方面的缺点吗?如果我没有错,这意味着用户不可能同时从多个设备登录(例如,计算机和智能手机)。你知道这方面的最佳做法吗? – ceran 2015-02-08 14:02:26
我同意。这取决于你的用例。我猜想一个好的平衡是登录表单上的“记住我”复选框。就我个人而言,如果你不处理任何重要的事情,但你的里程可能会有所不同,我认为饼干会议是可以的。 – Mikesname 2015-02-08 19:19:30