【发布时间】:2013-05-08 14:43:29
【问题描述】:
我有一个在 Ubuntu、Nginx 和 Thin 上运行的 Rails 应用程序。
当我停止 Nginx 并停止瘦服务器,进行 $ cap deploy 然后重新启动 Thin 和 Nginx 时,我希望用户必须重新登录。但是,他们不需要。
有没有办法强制他们重新登录?
谢谢!
【问题讨论】:
标签: ruby-on-rails nginx thin
我有一个在 Ubuntu、Nginx 和 Thin 上运行的 Rails 应用程序。
当我停止 Nginx 并停止瘦服务器,进行 $ cap deploy 然后重新启动 Thin 和 Nginx 时,我希望用户必须重新登录。但是,他们不需要。
有没有办法强制他们重新登录?
谢谢!
【问题讨论】:
标签: ruby-on-rails nginx thin
用户不必重新登录,因为他们的会话存储在 Rails 不会在部署之间修改的持久会话存储(通常是数据库)中。登录用户的浏览器会在每个 HTTP 请求上发送 cookie,Rails 会根据会话存储对这些 cookie 进行身份验证。要强制用户重新登录,您必须通过删除记录或更改过期时间来修改此会话存储。
假设您使用 ActiveRecord 将会话存储在数据库中,
rake db:sessions:clear
应通过删除存储会话的表中的所有行来强制使所有现有会话过期。
【讨论】:
rake tmp:sessions:clear。但是,重新启动后,我不必登录。