Преглед на файлове

10分支内没有任何操作就退出登录的开发

frank преди 3 години
родител
ревизия
b7afa2d540
променени са 4 файла, в които са добавени 71 реда и са изтрити 0 реда
  1. 1 0
      backendEle/src/main.js
  2. 34 0
      backendEle/src/utils/loginTimeOut.js
  3. 2 0
      frontendEle/src/main.js
  4. 34 0
      frontendEle/src/utils/loginTimeOut.js

+ 1 - 0
backendEle/src/main.js

@@ -8,6 +8,7 @@ import router from './router'
 // import axios from 'axios'
 import axios from './utils/axiosPlugin'
 import errorInfo from './utils/errorCode'
+import './utils/loginTimeOut'    // 增加的超时登录退出的js
 
 Vue.use(ElementUI)
 

+ 34 - 0
backendEle/src/utils/loginTimeOut.js

@@ -0,0 +1,34 @@
+var lastTime = new Date().getTime();     // 获取最开始的操作时间
+var currentTime = new Date().getTime();     // 获取当前的操作时间
+var timeOut = 10 * 60 * 1000;       // 设置超时时间 : 10分 * 60秒 * 1000毫秒 , 因为1秒等于1000毫秒
+
+// 刷新的时候 ,触发重新加载的事件来执行更新最开始的操作时间
+window.onload = function () {
+  window.document.onmousedown = function () {
+    localStorage.setItem("lastTime",new Date().getTime());
+  }
+};
+
+function checkTimeout() {
+  currentTime = new Date().getTime();      // 更新当前的操作时间
+  lastTime = localStorage.getItem("lastTime");      // 获取最开始的操作时间
+
+  // console.log('开始了');
+  // console.log('当前时间 '+currentTime);
+  // console.log('最开始的时间'+lastTime);
+  // console.log('时间差'+currentTime - lastTime);
+  // console.log('超时时间'+timeOut);
+  // console.log('token'+localStorage.getItem("accessToken"));
+
+  if (currentTime - lastTime > timeOut) {     // 把最开始的和当前的操作时间差 和 规定的超时时间做对比 ,来判断是否超时
+    localStorage.removeItem("accessToken");      // 移除 token
+    // console.log("超时");
+    var url = window.location.href;      // 剩下就是跳转到登录页面重新登录
+    var newUrl=url.match(/(\S*)#/)[1];
+
+    window.open(newUrl + '#/login','_self');
+  }
+}
+
+/* 定时器 间隔30秒检测是否长时间未操作页面 */
+window.setInterval(checkTimeout, 30000);

+ 2 - 0
frontendEle/src/main.js

@@ -9,6 +9,8 @@ import router from './router'
 import axios from './utils/axiosPlugin'
 import errorInfo from './utils/errorCode'
 import webSocketService from './utils/websocket';
+import './utils/loginTimeOut';    // 增加的超时登录退出的js
+
 
 Vue.use(ElementUI)
 Vue.prototype.$webSocket = webSocketService;

+ 34 - 0
frontendEle/src/utils/loginTimeOut.js

@@ -0,0 +1,34 @@
+var lastTime = new Date().getTime();     // 获取最开始的操作时间
+var currentTime = new Date().getTime();     // 获取当前的操作时间
+var timeOut = 10 * 60 * 1000;       // 设置超时时间 : 10分 * 60秒 * 1000毫秒 , 因为1秒等于1000毫秒
+
+// 刷新的时候 ,触发重新加载的事件来执行更新最开始的操作时间
+window.onload = function () {
+  window.document.onmousedown = function () {
+    localStorage.setItem("lastTime",new Date().getTime());
+  }
+};
+
+function checkTimeout() {
+  currentTime = new Date().getTime();      // 更新当前的操作时间
+  lastTime = localStorage.getItem("lastTime");      // 获取最开始的操作时间
+
+  console.log('会员端的开始了');
+  console.log('会员端的当前时间 '+currentTime);
+  console.log('会员端的最开始的时间'+lastTime);
+  console.log('会员端的时间差'+currentTime - lastTime);
+  console.log('会员端的超时时间'+timeOut);
+  console.log('会员端的token'+localStorage.getItem("accessToken"));
+
+  if (currentTime - lastTime > timeOut) {
+    localStorage.removeItem("accessToken");
+    // console.log("超时");
+    var url = window.location.href;
+    var newUrl=url.match(/(\S*)#/)[1];
+
+    window.open(newUrl + '#/login','_self');
+  }
+}
+
+/* 定时器 间隔30秒检测是否长时间未操作页面 */
+window.setInterval(checkTimeout, 30000);