Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Prácticas recomendadas (lo mejor para Android): autenticar a un usuario con acceso a Facebook o Google

Estoy desarrollando una aplicación con Facebook y la opción de Google para el inicio de sesión, así como un clásico de correo electrónico + contraseña de inicio de sesión. Estoy atrapando a mí mismo preguntando acerca de varias cosas con respecto a la firma con API de terceros:

1. Ya que un usuario puede iniciar sesión con su cuenta de Facebook y, posteriormente, decidirse a desconectarse e iniciar sesión con su cuenta de Google, el usuario debe ser reconocido por su dirección de correo electrónico. Por lo tanto, cuando se registra con una cuenta diferente, la dirección de correo electrónico se busca en la base de datos y si se encuentra, se adjunta este nuevo inicio de sesión a la cuenta creada anteriormente. Aprobar este punto, por favor.

  • Haga clic en el icono de inicio con Espresso
  • No hay animación para Android al pasar de una actividad de retrato a una actividad de paisaje
  • Depuración USB no funciona, adb ignora Nexus 7
  • Android: ¿Cómo agregar iconos / drawables a la PagerTabStrip de la versión 4 de Android Support Lib?
  • Wifi-Direct siempre se desconecta después de treinta minutos
  • Android: el caché de mapas de bits requiere mucha memoria
  • 2. Si el usuario inicia sesión con Facebook, puede obtener un accesoToken, userId, correo electrónico del usuario, etc. ¿Cuál es la mejor práctica para autenticar al usuario para que siga siendo la forma más segura? ¿Debo enviar su facebook accessToken y dirección de correo electrónico directamente al servidor? ¿Debería el servidor comprobar contra Facebook, si el accessToken realmente existe en Facebook? ¿Cuál es la mejor y más segura forma de generar un token de acceso a aplicaciones privadas en el lado del servidor? He oído algo acerca de hash MD5 … ¿Debo utilizar sólo este token de acceso recién generado en llamadas API y no utilizar ninguna de las credenciales de Facebook? ¿O debo usar las credenciales de Facebook y así guardarlas en el servidor / cliente? Voy a utilizar Java App-engine para el lado del servidor de mi aplicación.

    3. ¿Qué pasa si el usuario elimina su cuenta en Facebook? ¿Cómo sabrá la aplicación sobre esto? Si lo sabe de todos modos, ¿qué debería hacer con la cuenta?

    1. ¿Debo comprobar regularmente el token de acceso contra Facebook si todavía es válido? ¿Por qué y cómo y con qué frecuencia?

    No estoy seguro si estoy preguntando en el lugar correcto. Si estoy equivocado, por favor, redirigirme la manera en que debo ir, tal vez algunos enlaces sobre estas mejores prácticas? Hasta ahora, no he encontrado nada que responda a TODAS mis preguntas. Es codificación y seguridad relacionados, supongo. Gracias por todos tus consejos y trucos.

  • Cargar la barra de progreso en android?
  • Conexión HTTPS con certificado de cliente en una aplicación para Android
  • ¿Qué etiquetas HTML son compatibles con Android TextView?
  • Cómo escuchar eventos de GC en Android
  • Cómo manejar graciosamente la excepción dentro de AsyncTask en Android?
  • ¿Qué es un token API?
  • 2 Solutions collect form web for “Prácticas recomendadas (lo mejor para Android): autenticar a un usuario con acceso a Facebook o Google”

    Después de leer y preguntar, he llegado a esto:

    1. Sí, si desea que sus usuarios se registren con su cuenta de Facebook o Google, llame a la API, obtenga la dirección de correo electrónico (es aún más fácil con AccountManager de Google en Android), envíela a su servidor que Guardará la dirección de correo electrónico, asociará un ID de usuario y generará su propio código de acceso. El código de acceso se devolverá a su aplicación cliente para almacenarlo para su uso posterior. Siempre que el usuario quiera realizar algunas operaciones, se llamará a la API del servidor con la dirección de correo electrónico y el código de acceso del usuario y puede estar seguro de que realmente es el usuario. Es mucho más difícil llamar a la API desde fuera y adivinar correctamente la dirección de correo electrónico y el código de acceso, por lo que es algo seguro.

    2. Dado que el inicio de sesión de Facebook sólo se utiliza para autenticar al usuario, lo que significa que sólo para verificar que el usuario existe y tiene una cuenta, no necesitamos el FB accessToken. Necesitamos el FB accessToken sólo para las llamadas de la API para el servidor de Facebook, por ejemplo, cuando queremos recuperar una lista de amigos del usuario y así sucesivamente. En este caso, puede obtener la sesión activa que proporciona Facebook SDK y obtener el accessToken desde allí.

    3. Este caso es otra vez bastante simple. Si sólo usa el inicio de sesión de Facebook para autenticar al usuario, no le importa si el usuario elimina su cuenta en el futuro. Después de la primera entrada, se guarda su dirección de correo electrónico, posiblemente una imagen y ya no se preocupan por su perfil de Facebook. Si utiliza el inicio de sesión de Facebook para obtener una lista de amigos y así sucesivamente, no mantiene este tipo de datos en su almacenamiento local de todos modos, por lo que tan pronto como el usuario elimina su cuenta, pierde su lista de amigos también. O bien, puede mantener su lista de amigos e intentar actualizarla cada vez que use su aplicación y una vez que él elimine su cuenta, la lista de amigos deja de actualizarse y es, de nuevo, su usuario no usar la cuenta de Facebook. La última idea sería bastante juego de aplicaciones de juegos de casos de uso …. sólo una idea, no nada oficialmente aceptado como el mejor.

    • 1 y 2

    Puede hacerlo de múltiples maneras y depende de usted en la implementación, puede tener su correo electrónico recibido de cada hash de inicio de sesión y guardarlo como un usuario en su base de datos. A continuación, para cualquier usuario que se conecte puede pasar y hash el correo electrónico devuelto y comprobar si ese hash ya existe.

    También puede tener el inicio de sesión de usuario con un servicio y luego hacer que terminen la creación del usuario con el nombre de usuario, contraseña de correo electrónico, etc Entonces, cuando intente iniciar sesión con un servicio diferencial puede tener que ir a través de la inscripción de nuevo con un Ya tengo una Botón de cuenta, así como vincular a una cuenta si intenta crear la misma cuenta dos veces.

    Guarde los tokens asociados en una tabla de token de inicio de sesión de terceros vinculada a un usuario.

    Recomiendo el hash de todos los datos privados del usuario, da a usuarios más confianza con su app

    • 3

    Nunca me gusta confiar en cuentas de terceros y creo que el proceso de "terminar de crear su cuenta" crearía una mejor administración de cuentas. Permitir a los usuarios iniciar sesión con terceros o nombre de usuario y contraseña.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.