2016-05-31 20 views
0

KeystoneJSのcsrfトークンの不一致に問題があります。 私はルートファイルでこれを使用します。今、私は定義されたルートにPOSTリクエストを送信CSRFが一致しないトークン

$.ajaxSetup({ headers: { 'x-csrf-token' : '{{csrf_token_value}}' } }); 

:私はjQueryを使ってX-CSRFトークンヘッダを設定し、私のクライアント側のコードで

keystone.pre('routes', keystone.security.csrf.middleware.validate); 
keystone.pre('routes', keystone.security.csrf.middleware.init); 

私のルートファイルで。私のリクエストヘッダのcsrfトークンと私のクッキーは同じです。私は何が欠けていますか?

事前に感謝します。 ダニエル

答えて

1

私の解決策は、メタタグを作成して、ajaxSetupの方法を記入することでした。

<meta name="csrf-token" content="{{csrf_token_value}}"> 

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

は今もトークンが異なっており、私のヘッダーとクッキーに送る(多分クッキーのがKeystoneJSによって暗号化されています?)。

トークンを直接ajaxSetupメソッドまたはメタタグに入れた場合、なぜ違いがあるのか​​分かりませんか?

私にそれを説明できる人がいればいいと思います。それは間違いなく「方法」だけが償いされ、「理由」ではないので、この答えを明らかにするでしょう。

関連する問題