Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

219
Vistas
Cómo manejar la sesión para el cierre accidental de pestañas (cierre de pestaña/navegador o apagado de PC)

Tengo el requisito de tener solo una sesión activa por usuario en mi aplicación. Actualmente, estoy usando sessionId y almacenándolo en sessionStorage, así como en una base de datos para el usuario que inició sesión. Cada vez que el mismo usuario intenta iniciar sesión en la aplicación desde otra pestaña o navegador, comparo el ID de sesión y también verifico si la sesión ya está activa para ese usuario o no usa el ID de sesión (estoy usando Apache Shiro para la gestión de sesiones), en caso afirmativo, se les redirigirá a una página de sesión no válida; de lo contrario, si la sesión no es válida, el usuario puede continuar con el inicio de sesión (borrando sessionId en la acción de cierre de sesión).

Ahora, tengo una situación, cuando el usuario inicia sesión en la aplicación y cierra accidentalmente el navegador o la pestaña con la sesión activa o la PC del usuario se reinicia, entonces no pueden iniciar sesión en la aplicación hasta que se agote el tiempo de espera de la sesión anterior (la sesión del usuario se agota después de 15 minutos de inactividad). Quiero permitir que el usuario inicie sesión si la pestaña de sesión activa se cierra accidentalmente. ¿Hay alguna manera de que pueda manejar esta situación?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

HttpSession s no están vinculados a pestañas, están en el ámbito del navegador. Si un usuario intenta iniciar sesión desde otra pestaña, sabrá que tiene una sesión activa dentro de ese navegador. Entonces, en ese caso, simplemente no ofrezca un formulario de inicio de sesión.

Si una pestaña está cerrada, es posible que tenga abiertas otras pestañas que usan la sesión, por lo que no tendría sentido invalidar una sesión al cerrar una pestaña.

No puede detectar y actuar en caso de que se apague una PC. Entonces nunca obtendrás lo que quieres que sea a prueba de balas.

Lo implementaría así: si un usuario intenta iniciar sesión y hay una sesión "activa" (reciente) en la base de datos, advierta al usuario que se encuentra una sesión activa y que continuar invalidará las otras sesiones. .

Ver también:

  • ¿Cómo puedo cargar Java HttpSession desde JSESSIONID?

Dado que ha etiquetado la pregunta con PrimeFaces, es posible que desee consultar p:idleMonitor . Puede ayudarlo a invalidar sesiones inactivas desde el lado del cliente.

Ver también:

  • Tiempo de espera a través de PrimeFaces p:idleMonitor
  • Primefaces Idle Monitor cuando varias páginas web están activas en varias pestañas del navegador
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda