Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 设计Rails API_Ruby On Rails_Authentication_Devise_Token - Fatal编程技术网

Ruby on rails 设计Rails API

Ruby on rails 设计Rails API,ruby-on-rails,authentication,devise,token,Ruby On Rails,Authentication,Devise,Token,有人能给我解释一下这行代码吗 skip_before_filter :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' } 我应该用它吗?为什么,为什么不。谢谢。验证真实性令牌是Rails用来防止攻击的before\u操作(在每个控制器操作之前调用的方法,在Rails 4之前称为before\u过滤器)。 这行代码的意思是:“如果这是一个JSON请求,那么跳过这

有人能给我解释一下这行代码吗

skip_before_filter :verify_authenticity_token, :if => Proc.new { |c| c.request.format == 'application/json' }
我应该用它吗?为什么,为什么不。谢谢。

验证真实性令牌是Rails用来防止攻击的before\u操作(在每个控制器操作之前调用的方法,在Rails 4之前称为before\u过滤器)。

这行代码的意思是:“如果这是一个JSON请求,那么跳过这个控制器的CSRF检查”


这对于需要向不在同一域上的远程站点提供的JSON API非常有用,因此会导致CSRF检查失败。只要你确定,这是安全的。但是,如果您的控制器不会被外部web应用程序使用(并且您只是在自己的站点上执行AJAX操作),那么不要关闭“验证真实性”令牌检查。

那么,您是说我的代码没有错?在我的控制台上,日志显示json设计请求的“警告:无法验证CSRF令牌真实性”。危险吗?通过使用,我的API控制器是独立的。我的web应用程序上还有一个rails管理员。请阅读这篇文章:@rlarcombe是另一种声明身份验证警告的方式吗?远程服务器是:“不要从你自己的rails应用程序中调用这些CSRF未经检查的端点”?@ChrisCameron-是的,我想是的。另请参阅