2011-10-09 13 views
8

Tengo un script PHP que inicia sesión y devuelve una matriz JSON con una ID de sesión si el inicio de sesión fue exitoso.Android App Strategy para hacer un seguimiento de una sesión de inicio de sesión

En mi aplicación, quiero iniciar sesión en la página principal y continuar a través de la aplicación que inicia sesión. Creé una clase singleton que contiene una ID de sesión (junto con algunos otros campos) recibida de la JSON de la Página PHP El campo de este objeto singleton "session_id" se verifica dependiendo de lo que haga el usuario.

Si el usuario desea cerrar la sesión, entonces el session_id simplemente se establece en nulo, por lo que se cierra la sesión.

También uso la biblioteca HttpURLConnection Para publicar el nombre de usuario/contraseña al iniciar la sesión.

Es este un enfoque bastante decente para el manejo de esta situación?

+2

Ese es también el enfoque que uso, pero también estoy interesado en otras alternativas. –

Respuesta

24

Aquí hay algunas cosas que usted debe pensar:

  • Una vez que se haya autenticado el usuario y almacenada localmente el session_id, enviar el session_id en la cabecera de cada una de sus peticiones http. De esta forma, no está enviando las credenciales con cada solicitud, sino con la identificación de la sesión. Y si algo sucede en el lado del servidor de la sesión, la transacción no será permitida.
  • Al cerrar la sesión, no solo elimine el session_id en el lado de su aplicación (cliente). Envíe un cierre de sesión al servidor también para que la sesión pueda ser eliminada del lado del servidor.
  • Si la sesión se cancela en el lado del servidor, querrá hacer 1 de 2 cosas A) solicitar al usuario que vuelva a iniciar sesión. B) Use las credenciales de la tienda para volver a iniciar sesión, cree una nueva identificación de sesión y guárdela de nuevo en su singleton.

Esto garantizará un poco más seguridad y funcionalidad que simplemente borrar la identificación de la sesión en su aplicación.

+1

? No creo que esté haciendo más solicitudes http distintas del inicio de sesión inicial. La mayor parte de su funcionalidad parece local. +1 por mencionar la forma correcta de hacer solicitudes autenticadas. –

0

Esta estrategia probablemente funcione. En una aplicación en la que trabajé, almacené los datos de devolución desde el inicio de sesión en las preferencias compartidas de Android. Si el usuario se desconectó, borré las preferencias. Esto permitió a los usuarios permanecer conectados, incluso si cerraron la aplicación y regresaron más tarde. Tenía un token de autenticación que revisé para ver si el inicio de sesión del usuario todavía era válido.

¿Cómo piensa en el manejo de inicios de sesión persistentes? ¿Caduca el sessionID? Es posible que desee pensar en estas situaciones; de lo contrario, una vez que el usuario inicie sesión, iniciarán sesión siempre o mientras la aplicación esté abierta.

+0

@ Mike L Necesito tu ayuda .Tengo un servicio web en el que tengo el nombre de método generateToken. Este método Token se usa para la sesión de ese usuario en particular. Lo que significa que cuando el usuario inicia sesión primero, tengo que obtener el token para ese usuario durante un tiempo ese Token es válido y el usuario debe obtener otro token después de que expire el primero. ¿Me puede ayudar a cómo almacenar el token de sesión, es decir, la cookie basada en KSOAP 2 –

Cuestiones relacionadas