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 相关文章推荐
用Javascript同时提交多个Web表单的方法
Dec 26 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 Javascript
jQuery鼠标事件汇总
Aug 30 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
面试常见的js算法题
Mar 23 Javascript
JS闭包用法实例分析
Mar 27 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
node.js-v6新版安装具体步骤(分享)
Sep 06 Javascript
简单实现vue验证码60秒倒计时功能
Oct 11 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
Sep 17 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
Feb 05 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
Chrome扩展页面动态绑定JS事件提示错误
2014/02/11 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
js css+html实现简单的日历
2016/07/14 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
Vue动态组件实例解析
2017/08/20 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
开发用到的js封装方法(20种)
2018/10/12 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
2019/02/26 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
Python测试网络连通性示例【基于ping】
2018/08/03 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
专家推荐信模板
2014/05/09 职场文书
师范生见习报告
2014/10/31 职场文书
商超业务员岗位职责
2015/02/13 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
SQL注入详解及防范方法
2021/12/06 MySQL
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript