3

这是交易。

我们的应用程序正在运行,作者正在使用它来发送网站内容。问题是,我们的作者有时会在提交站点中任何资源的表单后出现错误。检查生产日志后的错误是旧的 InvalidAuthenticityToken。

问题是,他们没有更改令牌,他们没有使表单无效,他们除了在编辑器中写入并单击提交之外什么都不做!

该错误似乎是完全随机的,有时会发生,有时不会:/我所知道的是它在编辑或创建项目时发生,因此无论是 POST 还是 PUT 请求,但问题是,它不在一个应用程序的特定领域,它最终只是不时发生在我们的表单中。

我们的环境是一个 HAProxy,它为一个 mongrel_cluster 提供服务,其中有 20 个 mongrel 运行我们的应用程序。Rails 版本是 2.3.8

这可能是不同杂种中的会话的问题吗?如果不是,我能做些什么来阻止这种随机错误,这使得作者有时会浪费大量时间编辑文本,而只是因为该死的错误而丢失它。

任何帮助都非常感谢。

4

1 回答 1

3

这个问题真的比我想象的要简单。

会话计时器设置为 900 秒,有时作者需要比在同一页面内编辑文本更长的时间,而无需在网站上进行任何其他导航。

由于超时,会话无效,然后当最终提交表单时,真实性令牌的会话部分被重置,因此引发了 InvalidAuthenticityToken 错误。

于 2010-08-06T16:40:52.217 回答