【发布时间】:2019-09-17 14:22:27
【问题描述】:
我目前正在尝试设置独立的 rails 6.0.0 API 全新安装 (rails new xxx --api) + sidekiq(包括 Rack::Protection)
设置 Rack::Cors 后,我在任何非 GET 请求上都会收到以下 403 错误:
WARN -- : Rack::Protection::AuthenticityToken 阻止了攻击
据我了解,这与 CSRF 令牌有关,这对 json API 没有意义。
这是我正在执行的请求的副本:
curl 'http://127.0.0.1:5100/searches' -H '接受:应用程序/json, text/plain, /' -H 'Referer:http://localhost:8080/' -H '来源: http://localhost:8080' -H '用户代理:Mozilla/5.0(Macintosh;英特尔 Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, 像 Gecko) Chrome/76.0.3809.132 Safari/537.36' -H 'Sec-Fetch-Mode: cors' -H '内容类型:应用程序/x-www-form-urlencoded' --data '{查询: 'test'}' -- 压缩
我无法解决的 2 个可能的解决方案:
禁用机架保护
在控制器 (ActionController::API) 中获取令牌以传递给请求
【问题讨论】:
标签: ruby-on-rails sidekiq rack ruby-on-rails-6