反应中的 csrf 和 rails

csrf in react and rails

我想在使用 post 请求时使用 csrf 令牌。为此,在 api 控制器中,我在顶部使用了 protect_from_forgery with: :null_session

但是我应该如何在反应中使用它。

我也找不到任何关于此的好文章。

fetch('/api/v1/posts', {
      method: 'post',
      body: JSON.stringify(postdata),
      headers: { 'Content-Type': 'application/json' },
    })

据我了解,您需要在调用时将 X-CSRF-TOKEN 作为 header 传递给 Rails。您可以使用 document.querySelector('[name="csrf-token"]').content 获取令牌:

这应该在您的 componentDidMount 方法中:

   fetch('/api/v1/posts', {
      method: 'post',
      body: JSON.stringify(postdata),
      headers: {
        'Content-Type': 'application/json',
        'X-CSRF-TOKEN': document.querySelector('[name="csrf-token"]').content
      },
    })