【发布时间】:2013-08-19 18:31:03
【问题描述】:
在我的 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 中实现这一目标的最佳方法是什么?
我正在考虑在我的ApplicationController 中使用prepend_before_filter,只要用户在应用程序中执行某事,它就会将用户cookie 的生命周期再延长30 分钟。
但是从安全的角度来看是否推荐这种方法?
感谢您的任何意见。
【问题讨论】:
-
为什么不使用提供的 gem 之一进行身份验证?例如 devise..this gem 提供了很多功能。它经过很好的测试和维护。我会推荐它,而不是自己构建身份验证系统。
-
谢谢,但我更喜欢构建自己的身份验证系统。
-
为什么要重新发明轮子? :)
-
因为它确实教会了我很多关于 Rails 的知识。强烈推荐!
-
好吧,如果你正在学习 Rails,它会帮助你更好地理解事物。否则这些东西总是让我讨厌:)。这就是我问你的原因;)。
标签: ruby-on-rails ruby ruby-on-rails-3 security session-cookies