0

在我的 Rails 应用程序中,我有sessions_helper这样的:

def sign_in(user)
  token = User.generate_token
  if params[:remember_me]
    cookies.permanent[:remember_token] = token
  else
    cookies[:remember_token] = token
  end
  self.current_user = user
end

def sign_out
  cookies.delete(:remember_token)   
  self.current_user = nil
end

现在,出于安全原因,如果用户已处于非活动状态(例如 30 分钟),最好自动退出该用户。

在 Rails 中实现这一目标的最佳方法是什么?

我正在考虑prepend_before_filter在我的应用程序中使用一个,只要用户在应用程序中执行某些ApplicationController操作,它就会将用户 cookie 的生命周期再延长 30 分钟。

但是从安全的角度来看是否推荐这种方法?

感谢您的任何意见。

4

1 回答 1

0

我使用类似的方法,但我使用的是会话而不是 cookie。我的应用程序控制器中有一个“身份验证”操作,该操作由每个控制器的 before_filter 触发,该操作将“会话 [:访问]”添加 1,这反过来又更新了数据库中的“更新”列。然后我有一个 cron 作业,它从数据库中删除任何在 20 分钟内未更新的会话。

于 2013-08-17T12:31:41.227 回答