VueJS,Apollo,Rails - 无法验证CSRF令牌真实性

时间:2017-12-26 19:20:49

标签: ruby-on-rails vue.js graphql-ruby

这是我的设置

const token = $('meta[name="csrf-token"]').attr('content');
const authLink = setContext((_, { headers }) => {
  // return the headers to the context so httpLink can read them
  return {
    headers: {
      ...headers,
      credentials: 'same-origin',
      'X-CSRF-Token': token,
      'authenticity_token': token,
    }
  }
});

我正在尝试X-CSRF-Tokenauthenticity_token,在我的GQL请求中,我可以看到它已正确添加到标头中。我正在抓住Rail的= csrf_meta_tags并且该值不为null或未定义。

我一直从rails服务器获得422 Can't verify CSRF token authenticity.

1 个答案:

答案 0 :(得分:0)

您可以尝试以这种方式阅读CSRF令牌:
    document.querySelector('meta[name="csrf-token"]').getAttribute('content')

据我所知,你不能在这里使用$ jQuery选择器 此外,'X-CSRF-TOKEN'正在我这边工作