2009-11-13 5 views
10

У меня есть форма на другом веб-сайте (с использованием другого бэкэнд), который я хочу получить POST для моего приложения Rails (в другом домене).Получить POST из внешней формы

  • Как создать действительный токен аутентификации для внешней формы, чтобы приложение Rails приняло его?
  • Предполагая, что я могу ответить на вышеуказанный вопрос - есть ли что-то еще особенное, что мне нужно сделать, чтобы сделать эту работу? Помимо токена аутентичности, остальная часть кажется мне довольно простой ...

Спасибо за помощь!

ответ

18

Вы не можете создать маркер autenticity из-за вашего приложения Rails. Что вы можете сделать, это disable the token protection только для этого действия и использовать пользовательскую реализацию на основе before_filter.

skip_before_filter :verify_authenticity_token, :only => :my_action 
before_filter :verify_custom_authenticity_token, :only => :my_action 

def verify_custom_authenticity_token 
    # checks whether the request comes from a trusted source 
end 
+0

Ницца. Спасибо за разъяснения! – neezer

2

Вы можете просто снять флажок, добавив фильтр, как:

skip_before_filter :verify_authenticity_token, :only => :action_name 
+0

Разве это не открыло меня никому, отправляющему сообщение в мое приложение для рельсов? Разве это не проблема безопасности? – neezer

+0

Вы можете добавить любой другой механизм проверки, который вы хотите (ip-адрес, что угодно) в другой фильтр, например. – JRL

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