Аутентификация для API в RoR - PullRequest
1 голос
/ 10 декабря 2010

У меня есть работающее приложение Ruby On Rails, которое доступно для веб-клиентов.Это приложение позволяет различным пользователям работать над общими проектами с разными учетными данными.Клиенты могут войти в систему через классическую комбинацию логин / пароль, чтобы получить доступ к проектам, которым они назначены.Учетные данные хранятся и управляются через сеансы ruby ​​с помощью authlogic.Все работает довольно хорошо.

Мы хотим добавить API в это приложение, используя рельсы MVC.Это означает повторное использование существующих и работающих контроллеров и простое написание новых (в нашем случае, XML) представлений.

Этот API должен быть легко доступен из программы Java Desktop.Более конкретно и проблематично, один и тот же экземпляр Java Desktop может выполнять несколько квази-одновременных вызовов API, но там, где каждый вызов связан с другим пользователем.

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

Вы видите ключевой момент, который я пропускаю?Если нет, видите ли вы какой-либо способ реализовать это должным образом, или у вас есть какие-либо лиды (например, документы или поисковые запросы Google), которые могут привести меня туда?

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

Кроме того, не стесняйтесь исправить любую ошибку или ложное предположение, которое я мог сделать,Мне действительно нужно больше узнать о веб-программировании / ruby ​​на рельсах / информатике в целом.

Спасибо, Стек O.

Ответы [ 2 ]

0 голосов
/ 10 декабря 2010

Вы можете использовать схему аутентификации на основе HTTP, такую ​​как аутентификация Basic Access или дайджест-аутентификация.Authlogic автоматически попытается проверить каждый запрос, если учетные данные будут отправлены таким образом.

0 голосов
/ 10 декабря 2010

Я думаю, что вам может помочь devise драгоценный камень .Он широко используется для тех же целей, что и у вас.

Из README:

Devise

Devise - гибкое решение для аутентификации Rails на основе Warden.Это:

  • Основано на стойке;
  • Полное решение MVC на основе движков Rails;
  • Позволяет одновременно выполнять вход в несколько ролей (или моделей / областей);
  • Основано наконцепция модульности: используйте именно то, что вам действительно нужно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...