En mi aplicación, quiero detectar el evento de cierre del navegador o la pestaña y luego, para este evento, me gustaría enviar un formulario para la función de cierre de sesión y borrar la sesión del usuario.
Probé el evento window.onbeforeunload pero es un incendio para todos, incluso si hago clic en el enlace o actualizo la página.
Cualquiera puede por favor ayudarme.
No hay una API específica para lograr lo que quieres.
Lo que puedes hacer es lo siguiente:
De esta manera, después de un retraso (relativamente) pequeño si la interfaz no se está ejecutando, terminará con un token de sesión/acceso caducado y el usuario cerrará sesión.
Contras de este enfoque: si el usuario tiene una pequeña ventana de problemas de conectividad, su sesión caducará. Si su sistema es una aplicación móvil, esto puede hacer que su aplicación sea muy frustrante de usar en diversas circunstancias. Puede que no sea un gran problema si su caso de uso es el acceso desde estaciones de trabajo.
No puede detectar un evento de cierre de pestaña/navegador de forma nativa en JavaScript. Cuando el usuario cierra una pestaña, todo el script que se ejecuta en la página deja de ejecutarse y no se puede ejecutar ningún código javascript después de eso.