2016-05-31 17 views
0

У меня проблема с несогласованным токеном csrf в KeystoneJS. Я использую это в моих маршрутах файл:CSRF Неисправен токен

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

В моей стороне клиента код, который я установил х-CSRF-токен заголовок с JQuery:

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

Теперь я отправить пост запрос на маршрут определен в файле маршрутов. Ток csrf в моем заголовке запроса и моем файле cookie - то же самое. Что мне не хватает?

Большое спасибо заранее! Daniel

ответ

1

Решение для меня состояло в том, чтобы сделать метатег и использовать его для заполнения моего метода ajaxSetup.

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

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

Теперь также маркер отправить в моем заголовке и печенья разные (возможно один в куки шифруется KeystoneJS?).

Я не понимаю, почему это имеет значение, если я помещаю токен непосредственно в свой метод ajaxSetup или метатег?

Мне было бы хорошо, если бы кто-то мог объяснить это мне. Это, безусловно, повлияет на этот ответ, поскольку только «как» рекламируется, а не «почему».