2012-01-12 3 views
0

Мне нужно, чтобы пользователи прошли аутентификацию через форму, но мне также нужно разоблачить эту аутентификацию как API для использования другими приложениями/устройствами.Проектирование API проверки подлинности Rails

Очевидно, я хочу, чтобы все было просто и избегало дублирования, так как я должен подходить к этому? Должен ли я использовать один URI для входа в систему и для входа в api? Если да, то каким образом я должен обрабатывать различные требования - информировать пользователя об успехе или неудаче с помощью flash/redirect и возвращать объект JSON клиенту API?

ответ

2

Используйте логин формы на основе для пользователей (например, Devise)

и на основе логин OAuth для API (для рельсов oauth2_provider)

Вы не можете избежать дублирования здесь, если вы не хотите, чтобы делать вещи правильно. В основном потому, что ваш API не имеет статуса, и ваши пользователи имеют состояние (cookie!).

+0

Но что делать, если я использую аутентификацию на основе токенов? Означает ли это, что существует способ унифицировать аутентификацию пользователя и аутентификацию API? – Undistraction

+0

oAuth - это чуть больше, чем access_token, вам нужно подписать каждый запрос. Спектр говорит, что вы можете получить access_token, отправляющий ваш пароль, но это не рекомендуется. http://tools.ietf.org/html/draft-ietf-oauth-v2-22#page-14 Рельсы полны драгоценных камней, которые уже все это делают, вам нечего делать, в отношении дублирования. – greut