使用curl
从 shell 向 Ruby on Rails 应用程序发送 GET 就像一个魅力。但是,对于 PUT、POST 等,需要应对 CSRF 令牌。我似乎无法在 shell(或 PHP 中)中获得正确的语法来传递这些数据。我认为应该是这样的
curl -v -XPUT -i http://my-server:8080/some_command --data "somevalue=1" --data-urlencode X-CSRF-Token=$AUTH
但这不起作用。(也没有authenticity_token=$AUTH
)
请注意,当此页面的浏览器加载完成时,AUTH 会设置为浏览器中显示的会话变量。
当我这样做时,我得到一个 302 重定向到登录页面。
日志说,
WARNING: Can't verify CSRF token authenticity
Completed 401 Unauthorized in 0ms
然后它将我重定向到登录页面(302)。