Autenticación de Rails con Access_token desde Facebook

Actualmente estoy desarrollando una aplicación de iPhone con backend de Rails. Estoy usando únicamente el inicio de session único de Facebook (SSO) en el iPhone y la authentication funciona muy bien en el extremo del cliente bastante bien. Estoy usando el layout en los carriles como back-end.

NOTA: he consultado la authentication Design for Facebook en una aplicación iOS que también accede a un service web seguro.

Veo que el layout tiene algo llamado token_authenticable que es esencialmente el "ticket" descrito en el paso 5 de ese hilo. Este es el flujo actual que veo

  1. usuario inicie session en Facebook SSO en el teléfono
  2. el usuario realiza una llamada a myserver.com/sessions/fb_sso con {access_token: X}
  3. En el extremo del server (en SessionsController # fb_sso, haré una llamada API a facebook con access_token
  4. Si access_token es válido, verifique si el usuario existe en db. Si el usuario no existe, cree un nuevo usuario
  5. Ahora podemos devolver {user_id: X, devise_auth_token: Y} a la llamada en 1)

Esto es bastante sencillo. Sin embargo, tengo un par de preguntas:

  1. Con el devise_auth_token, ¿eso significa que ya no tengo que llamar a sign_in ("usuario", recurso) desde el dispositivo? (Encontrado aquí http://jessewolgamott.com/blog/2012/01/19/the-one-with-a-json-api-login-using-devise/ )
  2. ¿Dónde será el mejor lugar para colocar el código para 3-4?
  3. No puedo encontrar mucho en Google sobre este tema. ¿Por qué hay tan pocos tutoriales para un process tan común? ¿Me estoy perdiendo algo evidentemente obvio?

¿Por qué no puedes usar omniauth-facebook gem? Es una solución muy simple para get el token de acceso si usas su potencialidad se duplicará. Asegúrese de que necesita get token de acceso diferente a diferentes times de inicio de session.

Puede consultar este enlace https://github.com/pramodv-nyros/social-login-in-rails

Debe usar el mismo token en el server y el cliente ios. Una solución simple es poner toda la lógica en el lado del server por el dispositivo + omniauth, iOS solo maneja la interfaz de usuario y la respuesta del lado del server. Si desea get un token de iOS como el uso de Facebook iOS SDK, debe decirle al token al lado del server, pero no se ve seguro.

    Intereting Posts