Несколько схем аутентификации с Devise и Rails 3

Вероятно, это распространенный вопрос, но я нигде не видел полных ответов на него:

У меня есть приложение Rails 3, которое использует Devise для аутентификации в Интернете и работает нормально. Все действия на всех контроллерах аутентифицированы, и все маршруты неактивны. Пользователи перенаправляются на веб-страницу, чтобы ввести свое имя пользователя и пароль, а затем могут получить доступ к ресурсам.

Теперь мне нужно добавить API в систему. Большинство контроллеров/действий будут совместно использоваться веб-пользователями и пользователями API, но пользователи API будут иметь другую схему аутентификации (возможно, ключи API).

Итак, если веб-пользователь переходит на

/projects/1/users

чтобы увидеть пользователей в Интернете, пользователь API должен перейти на

/api/v1/projects/1/users

чтобы увидеть то же самое с параметром вроде APIKey=abcd.... либо в заголовке, либо в параметрах, чтобы разрешить аутентификацию.

Я знаю, что решение заключается в переопределении SessionController и Routes, но нигде не могу найти подробный ответ об этом.


person Khash    schedule 30.05.2011    source источник
comment
Вы пробовали решение ниже? Это сработало для вас?   -  person digitalWestie    schedule 22.10.2011
comment
Да пробовал. Не работает. Отказался от всего этого и разделил кодовую базу для API и основного сайта.   -  person Khash    schedule 24.10.2011


Ответы (1)


Возможно, вы сможете добиться тех же результатов, используя аутентификацию с помощью токена:

http://rdoc.info/github/plataformatec/devise/master/Devise/Models/TokenAuthenticable

person MatthewFord    schedule 17.06.2011