据我所知,secret_key_base 只用于签名 cookie,更改 secret_key_base 会使现有的 cookie 失效。我需要在生产环境中更改 secret_key_base,让现有用户被登出是可以接受的行为,但我担心可能会造成其他副作用。当他们下次访问网站时,旧的 cookie 是否会被简单地删除/替换或者会一直存在并导致问题?除了用户被注销之外,是否还会发生其他变化?请注意保留 HTML 标记。
secret_key_base可以通过轮换方式进行升级,不会对用户产生影响。 我在这里找到了一个关于如何实现此操作的教程。
这个方法似乎可行,按照教程,我能够安装自动定期更新密钥库的计划任务,并设置可配置的时间间隔。仅当用户长时间处于非活动状态(例如3个月),其会话才会失效。
这适用于保护会话cookie的标准rails功能。如果您的应用程序还使用secret_key_base进行其他操作,则还需要在相应的位置进行轮换处理。