simple rails knock ruby-on-rails mobile ruby-on-rails-4 facebook-oauth rails-api

ruby on rails - knock - Rails JSON API oauth authentication



rails api devise jwt (2)

He estado investigando el mejor enfoque para implementar la autenticación de facebook, twitter y correo electrónico / contraseña para una aplicación JSON Rails 4.1 pura que usa rails-api. La aplicación Rails no tiene visualizaciones y solo sirve aplicaciones JSON entre aplicaciones para Android y aplicaciones híbridas nativas (utilizan el marco iónico que es una aplicación angular compilada en una aplicación nativa).

En el pasado implementé la autenticación básica donde se pasa un auth_token en los encabezados de las aplicaciones de los clientes a una API de Rails sin problemas usando los rails incorporados en autenticación, pero desde este momento necesito integrar Facebook y Twitter. Estoy buscando una solución que utiliza oauth.

He buscado en el diseño, pero no parece jugar muy bien con una api JSON pura. Del mismo modo, omniauth parece basarse en vistas y redirecciones. Además, opro y doorkeeper parecen ser geniales para ser su propio proveedor, pero no veo cómo manejan terceros como Facebook y Twitter.

¿Cómo están implementando las personas la autenticación Oauth de múltiples proveedores para una aplicación pura API JSON en rieles?


Hice una Api JSON muy similar usando gruñido. La autenticación utilizó clases de servicio personalizadas para autenticarse contra google, facebook, twitter. La clase de servicio para Facebook necesitaba un tokan de Facebook y usó la gema Koala para buscar la información de Facebook y poblar la identidad social. Si es necesario, creó un nuevo usuario o asoció la identidad social con un usuario existente con el mismo UID o correo electrónico.

De esta forma, teníamos un control detallado personalizado sobre todo el proceso de autenticación.

También utilizamos swagger para documentar la API y proporcionar una interfaz fácil de probar.


Mira this blog. Aquí el autor ha explicado para implementar google oauth2 en Android con raíles backend con algunos diagramas agradables. Espero que esto ayude