Vue设置长时间未操作登录自动到期返回登录页


Posted in Javascript onJanuary 22, 2020

Vue设置长时间未操作登录以后自动到期返回登录页

首先我们写在main.js文件中

import routerUtil from "@/utils/routerutil";//先将js文件在main.js中引入
routerUtil(router);

我们会在登陆成功后调用sessionUtil文件中的setSession,sessionUtil下面写的有

import sessionUtil from '@/utils/sessionutil'
sessionUtil.setSession("userInfo", '2');

在routerutil.js文件中

import sessionUtil from "./sessionutil";
const whiteList = ["/",'/logins']; // 路由白名单,不需要校验

export default router => {
 router.beforeEach(async (to, from, next) => {/*在跳转之前执行*/
 const userInfo = sessionUtil.getSession("userInfo");//触发sessionUtil中的getSession方法
 if ( userInfo ) {
 ////
 } else {
 if (whiteList.indexOf(to.path) !== -1) {
  next();
 } else {
  Message({
  type: "warning",
  message: "用户登录过期,请重新登录",
  duration: 1500,
  onClose() {
   next(`/`);
  }
  });
 }
 }
 });
};

在sessionutil.js文件中

const sessionutil = {
 setSession(key,value,maxAge){ //key=userInfo value=2 maxAge='' || 可自行设置
 const maxAgeTime = new Date().getTime() + 1000 * 3600; // 当前时间的+1小时 session 过期时间
 try{
  let data = { value, maxAge: maxAge ? maxAge : maxAgeTime }
  sessionStorage.setItem(typeof key === 'string'?key: JSON.stringify(key),JSON.stringify(data))
 }catch(err){
 }
 },
 getSession(key){
 try{
  const maxAgeTime = new Date().getTime() + 1000 * 3600; // 首先先设置一个 session 过期时间 1H后可自行设置
  let date = new Date().getTime(); //当前时间
  let session = JSON.parse(sessionStorage.getItem(typeof key === 'string'?key: JSON.stringify(key))); 
  if(session && session.maxAge != null && session.maxAge-date > 0 && session.maxAge <= maxAgeTime ){
  this.setSession(key,session.value);
  return session.value;
  } else {
  return null;
  }
 }catch(err){
 }
 },
}
export default sessionutil;

总结

以上所述是小编给大家介绍的Vue设置长时间未操作登录自动到期返回登录页,希望对大家有所帮助!

Javascript 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
Sep 17 Javascript
JavaScript基于对象去除数组重复项的方法
Oct 09 Javascript
JavaScript中浅讲ajax图文详解
Nov 11 Javascript
浅析javaScript中的浅拷贝和深拷贝
Feb 15 Javascript
AngularJS实现进度条功能示例
Jul 05 Javascript
使用ajax的post同步执行(实现方法)
Dec 21 Javascript
JS关于刷新页面的相关总结
May 09 Javascript
vue+openlayers绘制省市边界线
Dec 24 Vue.js
JavaScript设计模型Iterator实例解析
Jan 22 #Javascript
Vue开发环境跨域访问问题
Jan 22 #Javascript
vue中英文切换实例代码
Jan 21 #Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 #Javascript
微信小程序如何实现radio单选框单击打勾和取消
Jan 21 #Javascript
微信小程序仿淘宝热搜词在搜索框中轮播功能
Jan 21 #Javascript
微信小程序swiper实现文字纵向轮播提示效果
Jan 21 #Javascript
You might like
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
vue实现简单的登录弹出框
2020/10/26 Javascript
Python urlopen 使用小示例
2008/09/06 Python
python多线程操作实例
2014/11/21 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
浅析Python 序列化与反序列化
2020/08/05 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
python pillow库的基础使用教程
2021/01/13 Python
公务员职务工作的自我评价
2013/11/01 职场文书
最常使用的求职信
2014/05/25 职场文书
酒店开业策划方案
2014/06/02 职场文书
超市客服工作职责
2014/06/11 职场文书
2015年端午节活动总结
2015/02/11 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
关于做家务的心得体会
2016/01/23 职场文书
《小小的船》教学反思
2016/02/18 职场文书
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android