簡體   English   中英

你在哪里把CSRF令牌放在Relay / GraphQL中?

[英]Where do you put the CSRF token in Relay/GraphQL?

我正在嘗試使用我的Laravel服務器設置Relay和GraphQL。 我已成功設置Laravel以服務GraphQL。

在過去,為了使用jQuery進行ajax調用,我在master.blade.php中添加了以下內容:

 <meta name="csrf-token" content="{{ csrf_token() }}">

以及我的main.js文件中的以下內容:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

我的GraphQL端點當前正在返回令牌不匹配異常。 在我看來,Relay需要以與jQuery.ajax類似的方式將csrf-token傳遞給服務器。 它去哪兒了?

配置網絡層以將標頭附加到每個請求:

Relay.injectNetworkLayer(
  new Relay.DefaultNetworkLayer('/graphql', {
    headers: {
      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
    },
  })
);

Relay.DefaultNetworkLayer的第二個參數傳遞給fetch(input, init)init參數。 有關詳細信息,請參閱“ 中繼網絡層指南”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM