我正在使用 Devise (2.1.2) 和 Rails (3.2.9),并且启用了基本身份验证(用于测试)。我正在使用 CURL 发布 JSON POST 请求,但我看到了奇怪的行为。身份验证在我第一次发送请求时失败(服务器重新启动后),但在第二次发送完全相同的请求后成功。
调试时,第一次尝试时winning_strategies 似乎为零,但第二次尝试时填充了三个策略。
这种行为的原因是什么?
我正在使用 Devise (2.1.2) 和 Rails (3.2.9),并且启用了基本身份验证(用于测试)。我正在使用 CURL 发布 JSON POST 请求,但我看到了奇怪的行为。身份验证在我第一次发送请求时失败(服务器重新启动后),但在第二次发送完全相同的请求后成功。
调试时,第一次尝试时winning_strategies 似乎为零,但第二次尝试时填充了三个策略。
这种行为的原因是什么?
尝试:
认证:
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