0

我正在使用 Devise (2.1.2) 和 Rails (3.2.9),并且启用了基本身份验证(用于测试)。我正在使用 CURL 发布 JSON POST 请求,但我看到了奇怪的行为。身份验证在我第一次发送请求时失败(服务器重新启动后),但在第二次发送完全相同的请求后成功。

调试时,第一次尝试时winning_strategies 似乎为零,但第二次尝试时填充了三个策略。

这种行为的原因是什么?

4

1 回答 1

0

尝试:

认证:

curl -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -X POST http://localhost:3000/users/sign_in \
  -d "{'user' : { 'email' : 'test@example.com', 'password' : 'password'}}" \
  -c cookie

节目:

curl -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -X GET http://localhost:3000/pages/1.xml \
  -b cookie

对于post请求 -

Rails 3 中的非 GET 请求需要CSRF 令牌。

这是因为 Rails 默认为表单添加了一个真实性令牌,以防止恶意伪造提交的参数。由于您没有在请求中提供此令牌,因此 rails 不接受它。你可以绕过这个

skip_before_filter :verify_authenticity_token
于 2013-01-24T09:53:08.397 回答