Вероятно, это распространенный вопрос, но я нигде не видел полных ответов на него:
У меня есть приложение Rails 3, которое использует Devise для аутентификации в Интернете и работает нормально. Все действия на всех контроллерах аутентифицированы, и все маршруты неактивны. Пользователи перенаправляются на веб-страницу, чтобы ввести свое имя пользователя и пароль, а затем могут получить доступ к ресурсам.
Теперь мне нужно добавить API в систему. Большинство контроллеров/действий будут совместно использоваться веб-пользователями и пользователями API, но пользователи API будут иметь другую схему аутентификации (возможно, ключи API).
Итак, если веб-пользователь переходит на
/projects/1/users
чтобы увидеть пользователей в Интернете, пользователь API должен перейти на
/api/v1/projects/1/users
чтобы увидеть то же самое с параметром вроде APIKey=abcd.... либо в заголовке, либо в параметрах, чтобы разрешить аутентификацию.
Я знаю, что решение заключается в переопределении SessionController и Routes, но нигде не могу найти подробный ответ об этом.