2014-04-25 2 views
2

Я использую Rails 4.1.0.Как заставить внешний API отправлять POST без отключения защиты_from_forgery?

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

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

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

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

ответ

1

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

skip_before_action :verify_authenticity_token, only: :my_action_name 

Заменить :my_action_name с именем действий на API обратной передачи.

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

+0

Я прочитал, что источник несколько раз, прежде чем отправлять на этот вопрос. Благодарим вас за разъяснение по этому документу. Ваше решение действительно решило мою проблему. – sargas

Смежные вопросы