使用Ruby on Rails实现系统处理用户身份验证到期的建议

时间:2011-01-31 21:03:15

标签: ruby-on-rails ruby database session authentication

我正在使用Ruby on Rails 3,我想处理用户auhtentications在15分钟不活动后到期。我读了“Ruby On Rails Security Guide”,出于安全原因,建议不要在会话中保留身份验证,因为它的值可以在客户端更改。所以我决定创建一个模型来做到这一点。

对于数据库,我创建了一个包含以下列的表:“last_sign_in”,“last_sign_out”和timestamps“created_at”和“updated_at”。每个用户都有一个专用行来存储他/她的身份验证信息。

我的疑问/怀疑是:

  1. 参考系统的性能,当数据库包含很多(成千上万)用户时,仍然建议采用这种方法吗?如果不是,处理身份验证到期的最佳方法是什么?

  2. 在我的情况下如何实施代码来处理性能?也就是说,如何处理身份验证到期与数据库和缓存请求尽可能少的交互?

  3. 将“last_action”列添加到数据库表中,为了获得用户最后一次操作的时间信息,建议多少?

1 个答案:

答案 0 :(得分:0)

您可以使用devise gem进行身份验证,其中包含名为Rememberable的模块,可以为您存储和检索Cookie。

  

Rememberable管理生成和清除令牌以记住用户   从保存的cookie。 Rememberable也有实用的交易方法   将用户序列化到cookie并从cookie返回,尝试   根据保存的信息查找记录。   您可能不会直接使用可记忆的方法,而是使用它们   主要是内部用于处理记忆令牌。