可以删除所有用户的所有 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 2 中所有浏览器中的所有活动会话自动注销的问题