【问题标题】:Rails Nginx and Thin - why don't users get logged off when recycling?Rails Nginx 和 Thin - 为什么用户在回收时不注销?
【发布时间】:2013-05-08 14:43:29
【问题描述】:

我有一个在 Ubuntu、Nginx 和 Thin 上运行的 Rails 应用程序。

当我停止 Nginx 并停止瘦服务器,进行 $ cap deploy 然后重新启动 Thin 和 Nginx 时,我希望用户必须重新登录。但是,他们不需要。

有没有办法强制他们重新登录?

谢谢!

【问题讨论】:

    标签: ruby-on-rails nginx thin


    【解决方案1】:

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

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

    rake db:sessions:clear
    

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

    【讨论】:

    • 感谢您的帮助!我刚刚在我的本地主机上尝试了这个,它没有工作,因为我没有一个名为会话的 pg 表。
    • 我如何知道我的会话存储在哪里?
    • 好的,我找到了 session_store.rb 并且我没有使用数据库。我应该使用数据库吗?
    • 如果我继续使用基于 cookie 的会话存储,还有其他方法可以强制他们重新登录吗?
    • 我跑了rake tmp:sessions:clear。但是,重新启动后,我不必登录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 2015-11-26
    • 2018-09-22
    • 2014-04-16
    • 1970-01-01
    相关资源
    最近更新 更多