部署后无效的真实性令牌

时间:2011-05-18 17:32:06

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

每当我部署新版本的rails应用程序时,先前版本的真实性令牌都将失效。这是正常的行为。我不打算改变它。

但是,任何仍然在最后一个版本上打开页面的用户,如果他们尝试发布请求,都会收到无效的令牌错误。

如何阻止他们收到此错误?

1 个答案:

答案 0 :(得分:2)

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

仅当您使用Capistrano / Webistrano进行部署且会话存储在实际版本文件夹(而不是共享文件夹)中时,旧会话将丢失,用户需要获取新的auth_token。

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