Вы можете узнать, как работает CSRF, из здесь .Я рекомендую вам пройти через это.
При каждом использовании form_for
Rails добавляет в форму одно скрытое поле ввода, которое выглядит следующим образом:
<input type="hidden" name="authenticity_token" value="doLYVxrkhdrzn7zzriHXjFE6ZhNCuXVxLrau4ouENmuKKC/SWp2NMM/MeL/Ji2tDvzNcJHVN/Hc0LIluL3o5QQ==" />
Кроме того, Rails включает токен CSRF вметатеги веб-сайта, которые выглядят следующим образом:
<meta name="csrf-token" content="zxnmBxg81JUQPG/C/wb3HRCah0m9Xe2A+gZ5N0Oy7cfwC+dF4hC325WxdVDLfkIxcw/CR/xyaC1phpvZ4EcgQw==" />
Итак, когда вы используете Rails form_for
или что-то подобное для вызова AJAX (может быть с remote: true
), токен аутентификации отправляетсяна сервер.Которого не было, когда вы пытались отправить тот же запрос с почтальоном.
Если вы скопируете токен CSRF и добавите его в параметры почтальона, запрос будет успешно завершен.