Как отправить весенний токен csrf из клиента Postman rest?
У меня есть защита csrf весной. Поэтому в каждом запросе я посылаю токен csrf в заголовке из ajax-вызова, который отлично работает.
var token = $("meta[name='_csrf']").attr("content"); var header = $("meta[name='_csrf_header']").attr("content");
В ajax
beforeSend: function(xhr) { xhr.setRequestHeader(header, token), xhr.setRequestHeader("username", "xxxx1"), xhr.setRequestHeader("password", "password") }
У меня нет идеи генерировать токен csrf и включать в заголовок Postman Rest Client ? Не могли бы вы помочь мне отправить токен csrf из Postman Rest Client?
- Загрузка файла вместе с другим объектом на веб-сервисе в Джерси.
- как загрузить файл и данные json в почтальоне
- CORS с POSTMAN
- FCM с Postman - в запросе отсутствовал ключ аутентификации (токен FCM)
Самый простой способ сделать это последовательно, чтобы вам не приходилось каждый раз получать токен:
ПРИМЕЧАНИЕ. Вам необходимо установить PostMan Interceptor и активировать его, чтобы иметь доступ к файлам cookie браузеров
- Создайте новую среду, чтобы можно было сохранить переменные среды
-
Создайте метод входа в систему с тестом для хранения файла cookie XSRF в переменной окружения, на вкладке теста разместите этот код
//Replace XSFR-TOKEN with your cookie name var xsrfCookie = postman.getResponseCookie("XSRF-TOKEN"); postman.setEnvironmentVariable("xsrf-token", xsrfCookie.value);
EDIT Для всех, кто использует почтальон 5.5.2 или позже, вам также придется декодировать файл cookie, и они также предоставили альтернативные способы получения файлов cookie, как указывает @Sacapuces
pm.environment.set("xsrf-token", decodeURIComponent(pm.cookies.get("XSRF-TOKEN")))
Теперь у вас будет переменная среды с xsrf-токеном.
-
Сохраните свой метод входа в систему
-
Создайте новое сообщение, которое вы хотите создать, и в заголовках добавьте свой XSRF-токен-заголовок и переменную окружения в столбцах для доступа к ней {{}}
- Теперь перед запуском нового запроса убедитесь, что вы запустили свой логин, он сохранит переменную окружения, а затем, когда вы запустите фактический запрос, он автоматически добавит его.
Я могу отправить REST с помощью токена csrf, выполнив следующие шаги:
-
Тонер CSRF автоматически генерируется с помощью весенней безопасности при входе в систему. Он будет показан в заголовке ответа.
-
Маркер CSRF может использоваться при последующем запросе, устанавливая X-CSRF-TOKEN с токеном CSRF в заголовке.
Во-первых, вам необходимо установить PostMan Interceptor и активировать его, чтобы иметь доступ к куки-файлам браузеров.
-
Вы должны получить токен CSRF, сделав запрос GET: заголовок: «XSRF-TOKEN» и значение: «Fetch»
-
Вы должны увидеть токен на вкладке cookie и можете его скопировать (обратите внимание: вы можете настроить весну, как должен быть назван файл cookie. Возможно, ваш файл cookie имеет другое имя, чем «XSRF-TOKEN». Внимание: у вас есть этот пустой символ в токен из новой строки)
-
Теперь сделайте свой запрос POST и настройте заголовок: Заголовок: «X-XSRF-TOKEN» и значение: «Ваш скопированный токен без пробелов»
Для меня работает вариант с добавлением X-CSRF-TOKEN в заголовки.
Если вы не хотите настраивать переменные среды и т. Д., Вот самое быстрое решение
Это не работает для меня.
Я выполняю следующие шаги: вам нужно получить токен CSRF, сделав запрос GET: заголовок: «XSRF-TOKEN» и значение: «Fetch»
Вы должны увидеть токен на вкладке cookie и можете его скопировать (обратите внимание: вы можете настроить весну, как должен быть назван файл cookie. Возможно, ваш файл cookie имеет другое имя, чем «XSRF-TOKEN». Внимание: у вас есть этот пустой символ в токен из новой строки)
Теперь сделайте свой запрос POST и настройте заголовок: Заголовок: «X-XSRF-TOKEN» и значение: «Ваш скопированный токен без пробелов»
Поместите X-CSRF- токен в качестве ключа и FETCH в качестве значения в заголовок запроса GET, и вы получите токен в заголовке ответа