Mantener viva una sesión en forma permanente
Las sesiones expiran de acuerdo al parámetro MaxIdleTime fijado en la configuración del servicio de Passport.
Con cada llamada que se hace a una página de Engage, se reinicia el timer del ticket en Passport.
Cuando un usuario no hace ninguna interacción con el sitio web entonces:
- El ticket de sesión expira
- Passport lo elimina de la lista de tickets
- Passport cierra la conexión en PSESSIONS
Como mantener viva la sesión más allá del parámetro MaxIdleTime?
A partir de Engage 5.7.0.0 se provee una función en KeepSessionAlive.js, parámetro: “engSessionKeepAliveEnabled” el cual se puede colocar en True (valor por defecto = False).
var engSessionKeepAliveEnabled = false; // poner en true para que no expire el ticket por inactividad
Adicionalmente puede graduarse el intervalo, expresado en minutos, en el que se desea “resetear” el timer, aconsejándose configurarlo en MaxIdleTime -1 para minimizar las ejecuciones del Timer.
function SetSessionKeepAliveTimer() {
if (engSessionKeepAliveEnabled) {
var windowType = $get(‘hdnWindowType’).value;
if (windowType != ‘popup’) {
engSessionKeepAliveTimer = setInterval(function () { GetServerData(”) }, (9 * 60 * 1000)); // 9 minutos
}
}
}
Nota: Entre 5.5.0.5 y 5.7.0.0 el parámetro se encuentra en MainPage.js.