PHP - Duda con sesiones.

   
Vista:

Duda con sesiones.

Publicado por Pablo (31 intervenciones) el 01/09/2012 13:23:19
Tengo una duda con sesiones.
Presento un formulario con login y password, el usuario lo rellena y si todo va bien llega a la página de inicio de la aplicación dónde una sesión que he iniciado en el archivo que verifica login y password le da la bienvenida.
Si el usuario hace lo que yo quiero, puede salir de la aplicación eliminando la sesión y borrando las variables de sesión.
Pero si el usuario teclea otra dirección en la ventana activa del navegador y luego retorna, sigue teniendo la sesión activa (a no ser que pasen mas de 1440 segundos).
¿Como puedo hacer para que si el usuario abandona la aplicación, al retornar con el navegador le pida que se autentifique de nuevo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Duda con sesiones.

Publicado por xve (5520 intervenciones) el 01/09/2012 21:25:01
Hola Pablo, hasta donde yo se, si el usuario no cierra el navegador no es posible, ya que la sesion del usuario guarda un ID en una cookie en tu navegador, la cual esta activa aunque cambie de pagina (siempre y cuando no cierre el navegador).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con sesiones.

Hola Pablo, cuando decis "Si el usuario hace lo que yo quiero" a que te referis?
Cuando el usuario escribe otra url y queres que se borre la sesion, esa url es de otro dominio diferente o ingresando una url dentro del mismo dominio tambien se tendria que desloguear?
Podes explicar mejor el funcionamiento que queres lograr?
Saludos,
Fernando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con sesiones.

Publicado por Pablo (31 intervenciones) el 02/09/2012 13:53:54
Perdonad si no me he explicado bien.
Tengo una aplicación dónde vamos registrando ventas.
El usuario que se logea puede:
1. Ingresar una venta nueva.
2. Asignar artículos a una venta.
3. Editar una venta (cambiar o eliminar artículos, añadir nuevos).
4. Ver las ventas que llevamos en un periodo de tiempo.
5. Salir de la aplicación y que se logee otro usuario en ese mismo equipo.
Tengo una tabla llamada usuarios en la que registro Usuario, Nombre y Password.
El nombre lo almaceno en $_SESSION y lo introduzco en el registro ventas o artículos de la venta para saber quien fue el último que edito ese registro y en caso de dudas/problemas preguntar a la persona adecuada.
Si alguien ha asignado una venta, ha dejado el navegador abierto y otra persona ha intentado hacer algo pasada una hora (por ejemplo) como la sesión caducó, se tiene que logear de nuevo.
Pero si estando en "Ver las ventas que llevamos en el mes" se ha ido a la página de Hotmail (por ejemplo) sin abrir una nueva ventana, o cerrar el navegador, o cerrar sesión, alguien puede llegar a la sesión de ese usuario volviendo para atrás en en navegador, cambiar algo en la aplicación y hacerlo en nombre de otro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con sesiones.

Publicado por Nacho Esviza (16 intervenciones) el 02/09/2012 15:26:11
Hola.

Sugiero probar un esquema en el que:

1) Usás una cookie que dure poco, por ej: 3 minutos.
2) Cuando el usuario está en la aplicación, un Javascript refresca la cookie permanentemente mediante un ajax transparente para el usuario (en background se invoca alguna petición que no retorne contenido sino que sólo sirve a los efectos de refrescar la cookie).
3) Cuando el usuario por cualquier razón se retira del sitio, la cookie vence dado que no recibe el refresco del ajax.

Tomar nota de que los navegadores actuales funcionan con solapas (pestañas o como les digan uds) y si el usuario abre una pestaña adicionar para entrar en Hotmail mientras deja otra abierta con el soft, entonces el ajax estará actualizando la cookie.

Otro esquema, al estilo "salvapantallas":

1) En cada pantalla, con javascript, ponés un Timer que a los 3 minutos de inactividad se muestra un layer gris tapando la pantalla y con un casillero pidiendo clave.
2) De esa manera sólo basta tipear rápidamente la clave y se vuelve a la normalidad.

Saludos
Nacho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda con sesiones.

Publicado por Pablo (31 intervenciones) el 02/09/2012 18:29:24
La primera opción me parece muy apropiada, Nacho.
Voy a intentar hacer algo con cookies y javascript,
Ya se que los nuevos navegadores tienen solapas, pero mis usuarios siguen siendo los mismos ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar