利用session控制 长时间未操做自动退出登陆

作项目时,通常会考虑到长时间未进行操做,可以自动退出登陆。下边就利用session来实现这一功能jquery

//采用H5 sessionStorage,保存登陆信息的公共js,不采用jquery
//目前仅为供给平台使用
var _EXPIRE_TIME=30*60*1000;//三十分钟没有操做,则注销
var _interval_handler=-1;
(function () {
    //先判断是否登陆 cgpt_memberInfo为存在浏览器中的session信息
  var memberObjStr = sessionStorage.getItem("cgpt_memberInfo");
  if (memberObjStr) {//已登陆
    //刷新最后使用时间
    sessionStorage.setItem("cgpt_lastVisitTime", new Date().getTime());
    _interval_handler=setInterval(checkExpired, 10*1000);//10秒钟检查一次,是否超时
  }
})();

function checkExpired() {
  console.log("10秒检查一次是否过时"+window.location.href+"::"+new Date());
  var storeLastTime=sessionStorage.getItem("cgpt_lastVisitTime")?sessionStorage.getItem("cgpt_lastVisitTime"):-1;
  if (storeLastTime==-1) cleareInterval(_interval_handler);
  else {
    if ((new Date()).getTime()-storeLastTime>_EXPIRE_TIME) {  //过时了
      //删除sessionStorage信息
      alert("因为您长时间未进行操做,系统已为您自动退出登陆");
      sessionStorage.clear();
      //把页头中的已登陆部分,改成须要登陆的样子
      document.location.reload();//刷新当前页面 
      //退出循环
      clearInterval(_interval_handler);
    }
  }
}
相关文章
相关标签/搜索