Установите таймер, когда пользователь входит в систему, щелкает что-либо или перемещает мышь. Вы можете поддерживать localStorage, sessionStorage или любую глобальную переменную, чтобы отслеживать время простоя.
let obj_date = new Date();
let miliseconds = obj_date.getTime(); // Returns the number of miliseconds since 1970/01/01
localStorage.setItem("idle_time",miliseconds);
После этого продолжайте вызывать следующую функцию изнутри, например setInterval()
каждые 10, 20, 30 или 60 секунд (по вашему выбору), чтобы проверить, истек ли этот срок. Или вы можете вызывать функцию всякий раз, когда пользователь пытается взаимодействовать, чтобы проверить, не превысило ли его время простоя пороговое значение.
function check_if_session_expired() {
let max_idle_minutes=1;
let miliseconds_now = obj_date.getTime();
let get_idle_time_in_miliseconds = localStorage.getItem("idle_time");
let one_minute_to_milisecond = 1000 * 60;
if ((Math.round(miliseconds_now / one_minute_to_milisecond) - Math.round(get_idle_time_in_miliseconds / one_minute_to_milisecond)) >= max_idle_minutes) {
console.log("expired");
//clear sessionStorage/localStorage if you want
localStorage.removeItem("idle_time");
//end the session and redirect the user to logout page
window.location.replace('example.com/logout');
} else {
localStorage.setItem("idle_time",miliseconds_now);
}
}
Вы можете использовать файлы cookie, чтобы сделать то же самое.
person
Plabon Dutta
schedule
22.04.2020