Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

213
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!