Rails4 ActionController :: InvalidAuthenticityToken错误

bbbonthemoon

我有正在生产中运行的Rails4应用程序,我的访问者偶尔会遇到ActionController :: InvalidAuthenticityToken错误,无法重现。我收到各种形式的每日2-4条通知,但背后没有明确的逻辑。我收到的报告显示,表单提交的authenticity_token与会话中保存的令牌不同。这怎么可能?我几次设法解决这个问题,但是无法重现,形式的所有authenticity_token都与会话中存储的形式不同,并且出现了InvalidAuthenticityToken。
任何想法从哪里开始寻找?

例子:

 Request:
-------------------------------

  * URL        : https://domain/signin
  * HTTP Method: POST
  * IP address : 113.96.xx.xx
  * Parameters : {"utf8"=>"✓", "authenticity_token"=>"MOh9JDE1AZ0CbIw/M33vfhjRShwzI6oqMhi8lk+n7OE=", "email"=>"xxxx@xxx", "password"=>"[FILTERED]", "commit"=>"Sign In", "controller"=>"clients", "action"=>"signin", "locale"=>"en"}

-------------------------------
Session:
-------------------------------

  * session id: [FILTERED]
  * data: {"_csrf_token"=>"QazCSVGeZlxEh83XTM+f5PkC/zopwCF96yV4duRats0="}

更新:想要补充一点,我是通过两个负载平衡的AWS EC2实例来提供页面的,并将会话存储在Redis ElastiCache实例中

bbbonthemoon

要回答我自己的问题,以防万一有人遇到相同的问题,似乎从标题中删除csrf_meta_tag可以解决我们的问题。我不知道为什么。可能是负责设置auth_token的rails javascript以某种方式干扰了我们的javascript并导致了问题,但是我的直觉是它必须在服务器或客户端使用缓存。无论如何,在删除csrf_meta_tag之后,似乎我们摆脱了这个问题。只要确保您对所有表单都使用form_tag即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Rails 5 ActionController :: InvalidAuthenticityToken错误

ActionController :: InvalidAuthenticityToken

开发中的Rails 5.0.0beta3:ActionController :: InvalidAuthenticityToken

Rails ActionController参数错误

Rails 4.2 ActionController:BadRequest自定义错误消息

常规ActionController :: InvalidAuthenticityToken异常-Rails

ActionController::InvalidAuthenticityToken Rails 5 / Devise / Audited / PaperTrail gem

ActionController :: InvalidAuthenticityToken Rails 5 /设计/审核/ PaperTrail gem

Rails 5中的ActionController :: InvalidAuthenticityToken

间歇性Rails 5 ActionController :: InvalidAuthenticityToken

用户注销并尝试提交POST表单时发生错误“ ArticlesController#create中的ActionController :: InvalidAuthenticityToken”

生产环境Nginx上的Rails 5 ActionController :: InvalidAuthenticityToken

如何修复Rails中的“ ActionController :: ParameterMissing”错误?

Rails 6中的另一个ActionController :: InvalidAuthenticityToken

Rails 6.0.1中的Ajax请求出现ActionController :: UnknownFormat错误

更新密码时的ActionController :: InvalidAuthenticityToken

Kaminari on rails4错误

在Ruby on Rails中的ActionController :: InvalidAuthenticityToken

带有response_to的Rails ActionController :: UnknownFormat错误

Rails 4中的ActionController :: InvalidAuthenticityToken

rails4 // ActionController :: UnknownFormat

Rails 4 ActionController :: UnknownFormat format.js错误

Rails4:PDFKit模板丢失错误

Rails错误-BookingsController#create中的ActionController :: UrlGenerationError

Rails:嵌套form_for错误:'ActionController :: UrlGenerationError'

ActionController::InvalidAuthenticityToken 在 SessionsController#destroy

ActionController::InvalidAuthenticityToken 使用nginx代理https请求到其他nginx(http)代理到rails(http)

使用 NGINX 和 Rails 登录时的 ActionController::InvalidAuthenticityToken

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):將 JSON 參數發佈到 Rails 控制器時