2012-06-01 18 views
5

Actualmente uso Devise 2.1 + Rails 3.2.x para autenticar usuarios. También voy a agregar soporte de OmniAuth-Facebook y Twitter pronto.Rails 3.2 + Devise 2.1 + OmniAuth + Backbone.js Autenticación

Quería usar esta infraestructura existente con Backbone.js. ¿Puede decirme si este es el flujo de trabajo correcto desde la perspectiva de la autenticación?

  1. de inicio de sesión del usuario a través de Concebir (o OmniAuth)
  2. de Uso Diseñar simbólico autentificable para volver una ficha?
  3. Backbone para acceder al token de alguna manera y anexarlo como parte de la llamada API? No necesito la API para crear usuarios, eso está siendo manejado por Devise.

Preguntas: 1. ¿Es así como lo implementarías? 2. ¿Alguna sugerencia/código de muestras en los números 2 y 3? 3. ¿Cómo manejarías la autorización con esto? No creo que CanCan funcione.

P.S. Leí muchos artículos, incluido esto: http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/. Parecen centrarse en la autenticación mediante la API, en lugar de proteger los recursos de la API una vez completada la autenticación.

Respuesta

2

realidad tiene esto aunque sea un poco más fácil por:

usuario se conecta a través de Diseñar/OmniAuth, hay un token de autenticación se debe crear Si utilizo la misma acción que es Idear habilitado para servir el resto API, usará automáticamente la información de la sesión para autenticarse, por lo que no se necesita captura/reenvío de token adicional.

P.S. RABL se genera para crear API en Rails.

0
  1. El flujo de trabajo es correcto.
  2. Encontré trozos y piezas en las interwebs, tal vez puedo publicar en el blog más tarde
  3. Correcto. Puede anular Backbone.sync, o si está utilizando jQuery puede confiugurar jQuery globalmente. Ejemplo here

La autorización se gestionaría de la misma forma en el lado del servidor, a menos que desee que el cliente conozca sus funciones. En el lado del servidor, encontrará el usuario actual a través de su token y autorizará en consecuencia. Si necesita saber qué funciones tiene un usuario, puede enviar las funciones cuando el usuario se autentique.

Cuestiones relacionadas