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