Rails Nginx和Thin - 为什么用户在回收时不会被注销?

时间:2013-05-08 14:43:29

标签: ruby-on-rails nginx thin

我在Ubuntu,Nginx和Thin上运行了一个Rails应用程序。

当我停止Nginx并停止瘦服务器,进入$ cap部署然后重启Thin和Nginx时,我希望用户必须重新登录。但是,他们没有。

有没有办法强制他们再次登录?

谢谢!

1 个答案:

答案 0 :(得分:1)

用户不必重新登录,因为他们的会话存储在Rails不在部署之间修改的持久会话存储(通常是数据库)中。登录用户的浏览器会在每个HTTP请求上发送cookie,Rails会根据会话存储对这些cookie进行身份验证。要强制用户重新登录,您必须通过删除记录或更改过期时间来修改此会话存储。

假设您使用ActiveRecord将会话存储在数据库中,

rake db:sessions:clear

应该通过删除存储会话的表中的所有行来强制使所有现有会话失效。