利用session控制 长时间未操作自动退出登录

做项目时,一般会考虑到长时间未进行操作,能够自动退出登录。下边就利用session来实现这一功能

//采用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);
    }
  }
}

 

posted @ 2018-05-07 15:12  TigerZhang  阅读(4618)  评论(0编辑  收藏  举报