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

问题描述:

我有一个在Ubuntu,Nginx和Thin上运行的Rails应用程序。Rails Nginx和Thin - 为什么用户在回收时不会被注销?

当我停止Nginx并停止Thin服务器时,以$ cap方式部署,然后重新启动Thin和Nginx,我希望用户必须重新登录。但是,它们不会。

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

谢谢!

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

假设你是存储在使用ActiveRecord数据库的会话,

rake db:sessions:clear 

应强制通过删除存储会话表中所有行终止所有现有会话。

+0

感谢您的帮助!我只是在我的本地主机上试过这个,但它没有用,因为我没有一个名为sessions的pg表。 – Reddirt 2013-05-08 15:37:59

+0

如何判断会话的存储位置? – Reddirt 2013-05-08 15:38:21

+0

好的,我找到了sessions_store.rb,我没有使用数据库。我应该使用数据库吗? – Reddirt 2013-05-08 15:43:13