#ruby-on-rails-3 #devise #restful-authentication
#ruby-on-rails-3 #devise #restful-аутентификация
Вопрос:
Вероятно, это распространенный вопрос, но я нигде не видел полных ответов на него:
У меня есть приложение Rails 3, которое использует Devise для аутентификации в Интернете и работает нормально. Все действия на всех контроллерах аутентифицируются, и все маршруты являются restful. Пользователи перенаправляются на веб-страницу, чтобы ввести свое имя пользователя и пароль, а затем могут получить доступ к ресурсам.
Теперь мне нужно добавить API в систему. Большинство контроллеров / действий будут разделены между пользователями Web и API, но у пользователей API будет другая схема аутентификации (возможно, ключи API).
Итак, если веб-пользователь переходит к
/projects/1/users
чтобы увидеть пользователей в Интернете, пользователь API должен перейти на
/api/v1/projects/1/users
чтобы увидеть то же самое с параметром типа APIKey=abcd …. либо в заголовке, либо в параметрах, разрешающих аутентификацию.
Я знаю, что решение заключается в переопределении SessionController и маршрутов, но нигде не могу найти подробного ответа по этому поводу.
Комментарии:
1. Вы пробовали решение, приведенное ниже? Сработало ли это у вас?
2. Да, пробовал. Не сработало. Отказались от всего этого и разделили кодовую базу для API и основного сайта.
Ответ №1:
Возможно, вы сможете достичь тех же результатов, используя аутентификацию токена:
http://rdoc.info/github/plataformatec/devise/master/Devise/Models/TokenAuthenticatable