ruby-on-rails - 部署后无效的真实性 token

标签 ruby-on-rails ruby usability protect-from-forgery expired-sessions

每当我部署新版本的 Rails 应用程序时,先前版本的真实性 token 就会失效。这是正常行为。我不想改变这一点。

但是,任何仍然在上一个版本上打开页面的用户,如果他们尝试执行发布请求,将收到无效 token 错误。

我能做些什么来阻止他们得到这个错误?

最佳答案

您将 session 存储在哪里?如果新代码可以到达旧 session (例如基于 Cookie、数据库或共享文件夹的 session ),则部署本身不会使 session 无效。

只有当您使用 Capistrano/Webistrano 部署并且 session 存储在实际发布文件夹(而不是共享文件夹)中时,旧 session 才会丢失并且用户需要获取新的 auth_token。

因此,您可以尝试使用某种共享存储来保留部署之间的 session 数据。

关于ruby-on-rails - 部署后无效的真实性 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048709/

相关文章:

ruby - 可以在不调用 thor 的情况下调用可执行的 Thor-powered 脚本吗?

ruby - 带有设计的自定义密码字段( ruby )

ruby-on-rails - 在 Rails Controller 中执行原始 MongoDB 查询

ruby-on-rails - 搜索如何使用 rails3 设置 mongo_mapper、设计、haml 的指南

ruby-on-rails - RSpec 的生成器列表

ruby-on-rails - 在数组上运行 destroy_all?

javascript - 使用 jQuery 显示更多/更少的项目

html - 鼠标悬停时文本字段输入焦点

c++ - 如何从创建的类中使用创建类的方法?

ruby-on-rails - Mechanize 错误 "too many bad responses"