Saltar al contenido

¿Cómo agregar el inicio de sesión de Facebook de OAuth en Ionic/Angular?

Esta noticia ha sido evaluado por nuestros expertos para garantizar la exactitud de nuestro contenido.

Solución:

Puedes hacer uso de $cordovaOauth.facebook en la biblioteca ngCordova de Ionic Framework:

http://www.ngcordova.com

Aquí hay dos referencias que podrían ponerlo en la dirección correcta para usarlo:

https://www.thepolyglotdeveloper.com/2015/02/make-facebook-mobile-app-ionic-framework/ http://ionicframework.com/blog/oauth-ionic-ngcordova/

Si su servicio depende de la precisión de los datos de inicio de sesión, es posible que también desee validarlos a través del back-end. Sin embargo, este enfoque RESTful es similar a la biblioteca de JavaScript.

Saludos,

Lograr que el inicio de sesión de Facebook funcione en la aplicación móvil híbrida es la mitad de la batalla. La otra mitad es compartir las credenciales con el backend. Acabo de terminar de implementar esto en un backend de Flask, así que pensé en compartir lo que funcionó.

Permita que el usuario inserte su nombre de usuario y contraseña en la aplicación Ionic y PUBLIQUE en mi servidor y luego utilícelos para autenticar al usuario en Facebook y obtener un token para ello. Obviamente, esto desafía totalmente el propósito de OAuth, pero supongo que funcionaría.

Esta sería una muy mala idea (como usted señaló, viola los principios de OAuth) y, de hecho, no funcionaría. No hay un punto final en el que pueda entregar a Facebook un nombre de usuario y una contraseña mediante programación, y obtener un token en respuesta (legalmente y sin raspado). En cambio, obtener un token requiere una devolución de llamada con la interacción del usuario, ya sea que se realice en el frontend o en el backend. Considere el caso de la autenticación de dos factores en Facebook, donde el usuario debe recuperar e ingresar un código enviado a su teléfono móvil.

Use la autenticación Javascript de Facebook que devuelve el token a la aplicación. Luego puedo ENVIAR el token a mi servidor para guardarlo para su uso posterior.

Sí, así es como se debe hacer. Esto se denomina autenticación entre clientes. Facebook tiene una página que explica los tokens de autenticación que es conceptualmente útil y analiza muchos escenarios diferentes, pero desafortunadamente no incluye muchos fragmentos de código útiles.

Puede pasar directamente el token de acceso al backend como parte del proceso de inicio de sesión. El backend luego puede validar el token. Suponiendo que está utilizando el estándar Flask-Security y Flask-Social paquetes en el backend, puede ajustar la vista de inicio de sesión de Flask-Social para autenticar al usuario usando el token pasado desde el frontend. Puede encontrar un código de muestra en esta esencia: https://gist.github.com/lrettig/7ca94ba45961207a7bd3

También tenga en cuenta que este token normalmente solo es válido durante un par de horas. Si necesita el backend para usar el SDK de Facebook en nombre del usuario de forma continua, deberá cambiarlo por un token a largo plazo.

Otra nota al margen que me confundió por un tiempo: noté que, después de autenticarme con Facebook en el frontend, me entregaron un token de acceso, mientras que al usar un SDK de Python en el backend, recibí un código en su lugar, que debe ser intercambiado para un token antes de que se pueda realizar cualquier consulta. No estoy seguro de por qué la diferencia, pero los códigos y tokens también se describen en los documentos de Facebook.

Si guardas algún titubeo o disposición de aclarar nuestro sección eres capaz de escribir una referencia y con deseo lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *