Как разрешить внешнему 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