从Rails发送CSRF令牌到React SPA

时间:2018-12-18 20:27:24

标签: ruby-on-rails reactjs single-page-application csrf ruby-on-rails-4.2

我有一个Rails API,我使用devise进行身份验证。我的客户端是React SPA。

我尝试将protect_from_forgery中的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启用保护?

0 个答案:

没有答案