lo primero sería crear un script sessionManager.js
(function () {
if (!sessionStorage.length) {
// Ask other tabs for session storage
localStorage.setItem('getSessionStorage', Date.now());
}
window.addEventListener('storage', function (event) {
if (event.key == 'getSessionStorage') {
// Some tab asked for the sessionStorage -> send it
localStorage.setItem('sessionStorage', JSON.stringify(sessionStorage));
localStorage.removeItem('sessionStorage');
} else if (event.key == 'sessionStorage' && !sessionStorage.length) {
// sessionStorage is empty -> fill it
var data = JSON.parse(event.newValue), value;
for (key in data) {
sessionStorage.setItem(key, data[key]);
}
} else if (event.key == 'logout_gestion_educativa') {
var auth_token_key = "me-auth-token";
var me_token_key = "me_token";
sessionStorage.removeItem(auth_token_key);
sessionStorage.removeItem(me_token_key);
localStorage.removeItem(auth_token_key);
localStorage.removeItem(me_token_key);
}
});
})();
y en el index.html de cada app web lo primero seria ese script por ejemplo
<body ng-app="app" style="background-color: #F4F4F4">
<div class="app" ui-view ng-controller="AppCtrl">
Iniciando ...
</div>
<script src="sessionManager.js"></script>
<script src="scripts/app.min.js"></script>
</body>
luego ya podemos utilizar sessionStorage entre tabs como si fuera localstorage y al salir de todas las pestañas se cierra la sesion ! pero pero para cerrar sesion en todas las pestañas hay que llamar explicitamente
$window.localStorage.setItem('logout_gestion_educativa', Date.now());