ruby-on-rails 如何正确删除生产Rails 7应用程序中的所有当前会话?

093gszye  于 2023-06-07  发布在  Ruby
关注(0)|答案(1)|浏览(192)

假设我们必须紧急重置Rails 7应用程序中的所有会话(例如:在更改主要ID之后)。如何做正确的方式?

u4vypkhs

u4vypkhs1#

会话存储在客户端,所以你不能删除它们,你只能使它们无效,我知道两种方法。

1.修改secret_key_base

会话cookie是使用应用程序的secret_key_base加密的,因此更改它将使之前创建的所有会话无效。虽然这看起来又快又容易,但我会避免它,因为它也可能破坏其他使用secret_key_base签名或加密其他数据的东西。

2.为会话添加版本

将保存版本的新密钥添加到会话。它可以是应用程序的一个版本,也可以是会话本身的一个版本。然后你可以实现任何你想要的逻辑。首先拒绝任何没有版本的会话。稍后,您可以执行一些操作,例如允许来自以前的修补程序版本的会话,并拒绝来自以前的次要和主要版本的会话。

相关问题