Подтвердить что ты не робот

Аутентификация аутентификации Rails JSON API

Я изучал наилучший подход для внедрения аутентификации facebook, twitter и email/password для чистого приложения JSON rails 4.1, которое использует rails-api. Приложение rails имеет НЕТ просмотров и просто служит JSON между приложениями для приложений Android и iPhone, использующими собственные приложения (они используют ионную инфраструктуру, которая является приложением angular, скомпилированным в собственное приложение).

В прошлом я реализовал базовую аутентификацию, когда auth_token передается в заголовках из приложений клиентов в Rails API без проблем с использованием рельсов, построенных в auth, но с этого времени мне нужно интегрироваться с Facebook и Twitter. m ищет решение, которое использует oauth.

Я искал урок, но, похоже, он не играет с чистым JSON api. Подобным образом, omniauth, похоже, полагается на взгляды и перенаправления. Кроме того, opro и привратник кажутся отличными для вашего собственного провайдера oauth, но я не вижу, как они обрабатывают сторонние стороны, такие как facebook и twitter.

Как люди, реализующие аутентификацию с использованием нескольких провайдеров, для чистого API-интерфейса JSON в рельсах?

4b9b3361

Ответ 1

Посмотрите этот блог. Здесь автор объяснил, чтобы реализовать google oauth2 в android с рельсами backend с некоторыми хорошими диаграммами. Надеюсь, это поможет.

Ответ 2

Я сделал очень похожий JSON Api, используя рычание. Аутентификация использовала пользовательские классы обслуживания для аутентификации против Google, facebook, twitter. Класс сервиса для facebook нуждался в facebook tokan и использовал драгоценный камень Коала, чтобы получить информацию из facebook и заполнить социальную идентичность. При необходимости он создал нового пользователя или связал социальную идентификацию с существующим пользователем с тем же UID или электронной почтой.

Таким образом, у нас был пользовательский мелкозернистый контроль на протяжении всего процесса аутентификации.

Мы также использовали swagger для документирования API и обеспечения простого тестирования интерфейса.