每当我部署新版本的rails应用程序时,先前版本的真实性令牌都会失效。这是正常行为。我不想改变这一点。
但是,任何在最新版本上仍打开页面的用户,如果他们尝试执行 post 请求,将收到无效的令牌错误。
我该怎么做才能阻止他们收到此错误?
你在哪里存储你的会话?如果新代码可以访问旧会话(例如 Cookie、DB 或基于共享文件夹的会话),则部署本身不会使会话无效。
仅当您使用 Capistrano/Webistrano 进行部署并且会话存储在实际的发布文件夹(而不是共享文件夹)中时,旧会话才会丢失,用户需要获取新auth_token。
因此,您可以做的是尝试使用某种共享存储在部署之间保留会话数据。