我正在使用Ruby on Rails 3,我想处理用户auhtentications在15分钟不活动后到期。我读了“Ruby On Rails Security Guide”,出于安全原因,建议不要在会话中保留身份验证,因为它的值可以在客户端更改。所以我决定创建一个模型来做到这一点。
对于数据库,我创建了一个包含以下列的表:“last_sign_in”,“last_sign_out”和timestamps“created_at”和“updated_at”。每个用户都有一个专用行来存储他/她的身份验证信息。
我的疑问/怀疑是:
参考系统的性能,当数据库包含很多(成千上万)用户时,仍然建议采用这种方法吗?如果不是,处理身份验证到期的最佳方法是什么?
在我的情况下,如何实施代码来处理性能?也就是说,如何处理身份验证到期与数据库和缓存请求尽可能少的交互?
将“last_action”列添加到数据库表中,为了获得用户最后一次操作的时间信息,建议多少?
答案 0 :(得分:0)
您可以使用devise gem进行身份验证,其中包含名为Rememberable的模块,可以为您存储和检索Cookie。
Rememberable管理生成和清除令牌以记住用户 从保存的cookie。 Rememberable也有实用的交易方法 将用户序列化到cookie并从cookie返回,尝试 根据保存的信息查找记录。 您可能不会直接使用可记忆的方法,而是使用它们 主要是内部用于处理记忆令牌。