如何使用例外轨道限制protect_from_forgery

时间:2015-08-31 10:25:19

标签: ruby-on-rails ruby api security

我有一个rails应用程序,它既是常规网页,也是API。 我已经激活了

protect_from_forgery with: :exception
在ApplicationController中

因为我在向api发出POST请求时遇到错误(422个响应)。

所以我想限制

protect_from_forgery with: :exception

到常规并放

protect_from_forgery with: :null_session 

到我的API(它位于API / v1名称空间下)。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以将protect_from_forgery with: :null_session放在相应的控制器中,该控制器用于API调用。

最好的方法是创建一个新的API::BaseController控制器:

class API::BaseController < ApplicationController
  protect_from_forgery with: :null_session
end

并从中扩展所有其他API控制器。这样您就不需要为每个控制器重复此声明。