可以删除所有用户的所有 Rails 会话信息

Posted

技术标签:

【中文标题】可以删除所有用户的所有 Rails 会话信息【英文标题】:Possible to delete all Rails session info for all users 【发布时间】:2019-10-31 10:49:38 【问题描述】:

我正在开发旧版 Rails 3.2 应用程序,并且希望将所有人注销并重置他们的 _app_session 并将安全标志设置为 true。似乎将我们的 session_store 策略更改为secure: true 或 config.force_ssl = true。奇怪的是,只有后者似乎在 Chrome 中可以正常工作。

问题是,记录每个人的最佳方式似乎是删除他们的会话变量,我在https://***.com/a/11422931/152825 of:

尝试了这个解决方案
rake tmp:sessions:clear

但它似乎没有工作。有没有更好的方法来清除这些会话变量?

【问题讨论】:

更改您的 secret_key_base (ENV['SECRET_KEY_ BASE']) 可能会成功。 【参考方案1】:

只要您的会话没有真正保存在后端,您就不能直接删除它们。但是您可以通过更改 secret_key_base 来使其失效。

Rails 使用该长随机密钥来加密会话 cookie。一旦改变 - 所有旧会话将不再有效,因为 rails 无法解密它们。

【讨论】:

以上是关于可以删除所有用户的所有 Rails 会话信息的主要内容,如果未能解决你的问题,请参考以下文章

如何在Rails 5中删除模型时删除模型的所有关联

强制删除正在连接的Oracle用户,以删除SDE用户为例

关于从 Rails 2 中所有浏览器中的所有活动会话自动注销的问题

Rails ActiveRecord 会话存储在 HTML5 SessionStorage 中而不是 Cookie

如何在rails中销毁与登录用户相关的所有任务

如何禁用编辑和删除rails_admin?