我有一个Rails API,我devise用于身份验证。我的客户端是一个 React SPA。
protect_from_forgery我尝试在我的 as 中打开application_controller:
class ApplicationController < ActionController::Base
protect_from_forgery with: :null_session
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
devise_parameter_sanitizer.permit(:sign_in, keys: [:otp_attempt])
end
end
但是对于每个put/post请求,它都会引发错误:
Can't verify CSRF token authenticity
这是有道理的,因为我没有CSRF token随我的请求发回任何请求。似乎为 rails 执行此操作的方法是添加<%= csrf_meta_tag %>我的application.html.erb,但我习惯jbuilder在将所有内容json发送到我的 SPA 之前将其转换为。
有没有办法可以在客户端访问这些信息,以便我可以打开 CSRF 的保护?