Как разрешить внешнему API отправлять POST, не отключая protect_from_forgery?

Я использую Rails 4.1.0.

Я нахожусь в проекте, где мои возможности очень ограничены. Мне нужно, чтобы форма отправляла данные во внешний API. Я сохранил значения формы в сеансе, потому что это приложение основано на нескольких формах.

Проблема заключается в том, что когда API возвращает POST в мое приложение Rails, сеанс обнуляется.

Я знаю, что это происходит потому, что protect_from_forgery в моем приложении / controllers / application_controller.rb

Как я могу продлить сеанс немного дольше, пока API не вернется на страницу подтверждения (говоря, что форма была успешно отправлена)?

1 ответ

Решение

Вы можете отключить защиту от подделки запроса только для одного действия:

skip_before_action :verify_authenticity_token, only: :my_action_name

замещать :my_action_name с именем действия, к которому API возвращает POST.

Источник: http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html

Другие вопросы по тегам