【发布时间】:2011-08-28 06:27:04
【问题描述】:
每当我部署新版本的 Rails 应用程序时,之前版本的真实性令牌都会失效。这是正常的行为。我不想改变这一点。
但是,任何在上一个版本上仍然打开页面的用户,如果他们尝试执行发布请求,将会收到无效令牌错误。
我能做些什么来阻止他们收到这个错误?
【问题讨论】:
标签: ruby-on-rails ruby usability protect-from-forgery expired-sessions
每当我部署新版本的 Rails 应用程序时,之前版本的真实性令牌都会失效。这是正常的行为。我不想改变这一点。
但是,任何在上一个版本上仍然打开页面的用户,如果他们尝试执行发布请求,将会收到无效令牌错误。
我能做些什么来阻止他们收到这个错误?
【问题讨论】:
标签: ruby-on-rails ruby usability protect-from-forgery expired-sessions
您将会话存储在哪里?如果新代码可以访问旧会话(例如 Cookie、DB 或基于共享文件夹的会话),则部署本身不会使会话无效。
只有当您使用 Capistrano/Webistrano 部署并且会话存储在实际发布文件夹(而不是共享文件夹)中时,旧会话才会丢失,用户需要获取新的 auth_token。
因此,您可以尝试使用某种共享存储在部署之间保留会话数据。
【讨论】: