我知道这个问题已在本论坛中提出过。但它对我不起作用。
我的要求是这样的
if request.type.json?
#disbale `ActionController::InvalidAuthenticityToken`
else
# enable `ActionController::InvalidAuthenticityToken`
end
任何想法!!怎么实现这个?
答案 0 :(得分:2)
来自最新Rails版本的RDoc:
skip_before_action :verify_authenticity_token
如果您发现它开始起作用,您可以限制它何时附加:
skip_before_action :verify_authenticity_token,
if: Proc.new { |c| c.request.format == 'application/json' }
如果您正在处理其他格式,您可以调试以查看您正在使用哪种请求格式以禁用它。
答案 1 :(得分:1)
RequestForgeryProtection documentation建议仅为JSON禁用CSRF。
class ApplicationController < ActionController::Base
protect_from_forgery unless: -> { request.format.json? }
end