无法使用rails_api验证CSRF:rails_admin

时间:2017-07-24 12:42:34

标签: rails-admin rails-api ruby-on-rails-5.1

我创建了一个全新的rails-api应用程序,并为其添加了地址模型,然后安装了rails_admin。每当我尝试添加行时,我都会得到422 s

我可以看到CSRF令牌已经在JSON中发送,但它说它无效。

Processing by RailsAdmin::MainController#new as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"9PP0EREx/cTK2TVtMp38ao/U9QCu6pjwmvV4fxIGEwTjZvGUfTcz7hpWL85UR/7qO3w+kytA2HD98+u7yiy3wg==", "address"=>{"door_no"=>"229", "street"=>"", "area"=>"", "city"=>"", "state"=>"", "pin"=>"", "code"=>""}, "return_to"=>"", "_save"=>"", "model_name"=>"address"}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 0ms (ActiveRecord: 0.0ms)

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken)

可能有什么不对?宝石中的东西可能吗?

1 个答案:

答案 0 :(得分:2)

我最初认为这个问题与我几个月前发布的问题相同,发布on Github,但即使降级到1.1.0后我也遇到了同样的问题。目前我正在使用Rails 5.1.2和Rails管理员1.2.0

  

设置config.api_only = false解决问题

api-only模式似乎与某些csrf验证内容发生冲突,一旦我更改了标记,它就开始变得非常完美。