我有一个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名称空间下)。我怎么能这样做?
答案 0 :(得分:1)
您可以将protect_from_forgery with: :null_session
放在相应的控制器中,该控制器用于API调用。
最好的方法是创建一个新的API::BaseController
控制器:
class API::BaseController < ApplicationController
protect_from_forgery with: :null_session
end
并从中扩展所有其他API控制器。这样您就不需要为每个控制器重复此声明。