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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
javascript与asp.net(c#)互相调用方法
Dec 13 Javascript
基于jquery的button默认enter事件(回车事件)。
May 18 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 Javascript
js中数组的常用方法小结
Dec 30 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
在Vue组件中使用 TypeScript的方法
Feb 28 Javascript
详解vue挂载到dom上会发生什么
Jan 20 Javascript
vue中input的v-model清空操作
Sep 06 Javascript
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
WordPress判断用户是否登录的代码
2011/03/17 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
python简单实现基数排序算法
2015/05/16 Python
Python中random模块用法实例分析
2015/05/19 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
python sorted函数原理解析及练习
2020/02/10 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
毕业生的自我评价
2013/12/30 职场文书
《开国大典》教学反思
2014/04/19 职场文书
公司投资建议书
2014/05/16 职场文书
教师竞聘演讲稿
2014/05/16 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
肖申克救赎观后感
2015/06/02 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis