2016-10-03 2 views
0

Я разработал страницу входа. Я сохраняю sessionId в локальном хранилище при входе в систему, и я хочу его очистить через некоторое время. Но это будет, если кто-то (logged-user) не будет активным в течение некоторого времени. Если он активен, я не хочу очищаться. Но я сделал это, даже если он активен, я очищаю локальное хранилище. Пожалуйста, помогите узнать, как поймать, он активен или нет.Как поймать события, чтобы очистить куки?

 localStorage.setItem('userId', data.id); 
     localStorage.setItem('user', data.phone); 
     localStorage.setItem('sessionId', (Math.random()*1e64).toString(36)); 
     var interval = setInterval(function(){ 
      console.log('In localStorage'); 
      localStorage.removeItem('sessionId'); 
      clearInterval(interval); 
      alert('Session expired!!') 
     }, (30*60*1000)); 
+1

Возможная Дубликат [Обнаружение времени простоя в JavaScript элегантно] (http://stackoverflow.com/questions/667555/детектирования-времени простоя-в-на JavaScript элегантно) –

ответ

0

Вы можете просто проверить использование setInterval:

var idleTime = 0; 
$(document).ready(function() { 
    //Increment the idle time counter every minute. 
    var idleInterval = setInterval(timerIncrement, 60000); // 1 minute 

    //Zero the idle timer on mouse movement. 
    $(this).mousemove(function (e) { 
     idleTime = 0; 
    }); 
    $(this).keypress(function (e) { 
     idleTime = 0; 
    }); 
}); 

function timerIncrement() { 
    idleTime = idleTime + 1; 
    if (idleTime > 19) { // 20 minutes 
     localStorage.removeItem('sessionId'); 
    } 
} 

Ответ заимствованные из here

Смежные вопросы