Estoy implementando una aplicación web, que usa sesiones. Estoy usando GWT y el motor de aplicaciones como mi cliente/servidor, pero no creo que estén haciendo algo realmente diferente de lo que haría con PHP y Apache, etc.¿Cuánto duran las cookies de sesión?
Cuando un usuario inicia sesión en mi aplicación web, Estoy usando HttpSession para comenzar una sesión para ellos. Me da la ID de sesión como esto:
// From my login servlet:
getThreadLocalRequest().getSession(false).getId();
Puedo devolver el sessionId de vuelta al cliente, y la almacenan en una cookie. El tutorial estoy usando conjuntos de esta cookie para 'expirar' en dos semanas:
Cookie.write("sid", theSessionId, 1000 * 60 * 60 * 24 * 14); // two weeks
Aquí es donde estoy confundido: si la cookie expira en dos semanas, entonces mi usuario ir junto con el webapp felizmente, solo para un día navegar a mi sitio y mostrar una pantalla de inicio de sesión. ¿Cuáles son mis opciones? ¿Puedo simplemente no establecer un tiempo de caducidad para esta cookie? De esa forma, el usuario tendría que cerrar sesión de forma explícita, de lo contrario, podrían usar la aplicación para siempre sin tener que volver a iniciar sesión.
¿O hay una manera mejor de hacer esto? No recuerdo que sitios como Twitter me hayan pedido que vuelva a iniciar sesión. Parece que estoy conectado permanentemente. ¿Simplemente no establecen la caducidad?
La aplicación web no protege ningún tipo de datos altamente confidenciales, así que no me importa dejar una cookie que no caduque, pero parece que debe haber una forma mejor.
Este es el tutorial que estoy haciendo referencia:
http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ
Gracias
Normalmente, muchas aplicaciones web que he visto permiten marcar "mantenerme conectado", lo que le permite iniciar sesión indefinidamente o si no está habilitado, cierre la sesión después de cerrar el navegador. – Corey