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

Possible to delete all Rails session info for all users

提问人:timpone 提问时间:6/18/2019 最后编辑:halfertimpone 更新时间:5/30/2020 访问量:339

问:

我正在开发一个遗留的 Rails 3.2 应用程序,并希望将所有人注销并重置他们的安全标志设置为 true。似乎要么将我们的session_store策略更改为 config.force_ssl = true。奇怪的是,似乎只有后者在 Chrome 中正常工作。_app_sessionsecure: true

问题是,记录每个人的最佳方法似乎是删除他们的会话变量,我在这里尝试了这个解决方案,https://stackoverflow.com/a/11422931/152825

rake tmp:sessions:clear

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

Ruby-on-Rails Ruby-on-Rails-3.2

评论

0赞 Josh Brody 6/18/2019
更改secret_key_base () 可能就可以解决问题。ENV['SECRET_KEY_ BASE']

答:

0赞 Alex Keene 6/18/2019 #1

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

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