придумать способ авторизации для API уведомлений - PullRequest
0 голосов
/ 20 февраля 2011

Мое приложение использует гем разработки для аутентификации. У меня есть сервис конвертации видео, который может отправлять уведомления на выбранный мной URL-адрес, предположительно, чтобы приложение знало, что конвертация завершена, в основном, уведомление такое же, как если бы кто-то нажимал кнопку с надписью «конверсия завершена», но выполнялась программно.

Я создал в файле rout.rb маршрут к этому действию, которое пометит видео как успешно преобразованное. # routes.rb соответствует "video / set_complete", "videos # set_complete"

#videos controller
def set_complete
   video = Video.find_by_conv_job_id(params[:encoding_id])
   video.set_complete
end

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

Теперь вот вопрос, кстати, спасибо за чтение моего поста, я перед вами в долгу - я имею в виду, проще говоря, я просто не могу никому дать доступ к этому dns.com/videos/set_complete, вот почему он использует Devise для аутентификации, но я не хочу использовать user: pass@dns.com/videos/set_complete, что я знаю, я просто чувствую, что user / pass находится на виду в простом http (не s) запрос довольно опасен. Поэтому я подумал, что, если предположить, что запросы всегда приходят с определенного ip или доменного имени, могу ли я создать устройство, всегда проверяющее подлинность этих ip-запросов без каких-либо встроенных user / pass или использования одиночного токена доступа?

Еще раз спасибо!

1 Ответ

1 голос
/ 20 февраля 2011

Вы можете сделать что-то подобное в вашем контроллере видео:

before_filter :check_ip, :only => [:set_complete]

def check_ip
  if request.remote_ip != '[ip address]'
    authenticate_user!
  end
end

Это позволит зарегистрированным пользователям делать этот запрос, если они не приходят с любого указанного вами IP-адреса. Если вы хотите разрешить ТОЛЬКО запросы на это действие с этого IP, измените authenticate_user! на что-то вроде:

sign_out_and_redirect

Однако, так как они не заботятся об ответе, кто-то может просто подделать правильный IP-адрес и быть в состоянии все уладить. Я не знаю, насколько вы заботитесь об этом, и этого, вероятно, все еще достаточно для того, что вы делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...