Ruby on rails 3 Rails 3.2-禁用控制器动作的CSRF保护

Ruby on rails 3 Rails 3.2-禁用控制器动作的CSRF保护,ruby-on-rails-3,controller,action,csrf,Ruby On Rails 3,Controller,Action,Csrf,我有一个名为ProductsController的控制器,我创建了一个名为set_status的操作,用于从.NET客户端应用程序调用PUT API。我已正确设置了所有内容,但在发送请求后,我收到“无法验证CSRF令牌真实性”错误。我的应用控制器中有以下用于CSRF保护的部件: protect_from_forgery 为了绕过CSRF保护,我在产品控制器中添加了以下内容: skip_before_filter :set_status 在使用此更改进行测试之后,我仍然收到相同的错误消息。根据

我有一个名为ProductsController的控制器,我创建了一个名为set_status的操作,用于从.NET客户端应用程序调用PUT API。我已正确设置了所有内容,但在发送请求后,我收到“无法验证CSRF令牌真实性”错误。我的应用控制器中有以下用于CSRF保护的部件:

protect_from_forgery
为了绕过CSRF保护,我在产品控制器中添加了以下内容:

skip_before_filter :set_status
在使用此更改进行测试之后,我仍然收到相同的错误消息。根据我的理解,上述代码行应禁用产品控制器中设置状态操作的CSRF保护,但它似乎不起作用


有人知道为什么这可能不起作用吗?提前非常感谢

我想出来了!这是我的密码:

skip_before_filter :verify_authenticity_token, only: :set_status
我忘记了protect_from_forgery语句创建了自己的方法。其中一种方法是验证令牌的真实性,因此它比我想象的要简单得多。我以前被卡住了,因为我没有一个verify\u authenticity\u令牌方法,但实际上我有,因为它是自动生成的

轨道4+

在\u操作之前跳过\u:仅验证\u真实性\u令牌::设置\u状态

在较新版本的rails中,使用
在动作之前跳过
而不是
在过滤器之前跳过
。(跳过之前的过滤器已被弃用)在更新的版本中,您还可以使用
跳过伪造\u保护
(只是
跳过之前的操作的内置包装