Ver la Versión Completa : Guardar usuario y contraseña en aplicación android para hacer login
angelete1992
08/01/15, 10:14:24
Buenas, estoy haciendo una aplicación que requiere que el usuario inicie sesión para acceder a su perfil.
El caso es que la primera vez introducirá sus datos (usuario y contraseña) y se insertarán en una base de datos remota.
Las siguientes veces quiero que cuando entre en la aplicación se inicie sesión automáticamente sin que el usuario tenga que volver a meter su nombre y contraseña.
¿Cuál es la mejor forma de hacer ésto? Estoy barajando la posibilidad de utilizar shared preferences (pero no sé si es muy seguro) o una base de datos SQLlite (aunque tener una base de datos sólo para ésto no sé si es poco eficiente).
¿Cómo se hace normalmente?
Un saludo y gracias de antemano
kriogeN
08/01/15, 11:02:38
Ambas son igual de inseguras si el usuario es root, si no lo es son igual de seguras, porque se almacenan en la parte privada de la app en data/data.
De todas formas no es correcto almacenar el usuario y contraseña en la app, lo correcto es almacenar un Token de Sesión y un Token de Renovación, usar el Token de Sesión mientras dure y cuando caduque usar el de Renovación para solicitar nuevos Tokens.
angelete1992
08/01/15, 11:21:39
Ambas son igual de inseguras si el usuario es root, si no lo es son igual de seguras, porque se almacenan en la parte privada de la app en data/data.
De todas formas no es correcto almacenar el usuario y contraseña en la app, lo correcto es almacenar un Token de Sesión y un Token de Renovación, usar el Token de Sesión mientras dure y cuando caduque usar el de Renovación para solicitar nuevos Tokens.
Estoy leyendo ahora y por ahí van los tiros jeje.
De todas maneras encriptaría la contraseña con MD5 (o el token en este caso). Tengo varias preguntas:
1- El token lo genera el servidor. Puedo hacer un algoritmo en PHP que lo genere aleatoriamente para el usuario y lo devuelva a la app android para que lo guarde en SharedPreferences. ¿Sería una buena solución?
2. También estoy con la autenticación con twitter y facebook. Entonces, ¿el token de sesión es siempre el mismo para un usuario concreto? Es decir, cuando el usuario accede por primera vez inserto ese token en la base de datos remota y en el sharedpreferences para compararlo.
Un saludo y gracias ;)
Dexafree
15/01/15, 15:14:43
Las API de Twitter y de Facebook tienen autenticacion mediante Oauth2, que se basa en lo que te decia kriogeN:
* Token de renovacion: Se usa para pedir token de sesion una vez caduca el anterior
* Token de sesion: Caduca cada X
Si vas a hacer la implementacion a nivel de servidor, puedes mirar algun tuto sobre como montarte un servidor con Oauth2 (con nodejs hay varios) :ok:
Asi podrias incluso utilizar el mismo modelo para los 3
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.