我在Ubuntu,Nginx和Thin上运行了一个Rails应用程序。
当我停止Nginx并停止瘦服务器,进入$ cap部署然后重启Thin和Nginx时,我希望用户必须重新登录。但是,他们没有。
有没有办法强制他们再次登录?
谢谢!
答案 0 :(得分:1)
用户不必重新登录,因为他们的会话存储在Rails不在部署之间修改的持久会话存储(通常是数据库)中。登录用户的浏览器会在每个HTTP请求上发送cookie,Rails会根据会话存储对这些cookie进行身份验证。要强制用户重新登录,您必须通过删除记录或更改过期时间来修改此会话存储。
假设您使用ActiveRecord将会话存储在数据库中,
rake db:sessions:clear
应该通过删除存储会话的表中的所有行来强制使所有现有会话失效。