0

我有一个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 的保护?

4

0 回答 0