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 捕获窗口关闭事件
Jul 26 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
Jan 15 Javascript
AngularJS基础 ng-selected 指令简单示例
Aug 03 Javascript
jQuery扩展+xml实现表单验证功能的方法
Dec 25 Javascript
一步步教你利用Canvas对图片进行处理
Sep 19 Javascript
微信小程序 页面滑动事件的实例详解
Oct 12 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
element-ui循环显示radio控件信息的方法
Aug 24 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
vue 使用鼠标滚动加载数据的例子
Oct 31 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
Aug 03 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
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
解析php中的escape函数
2013/06/29 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
实例讲解php实现多线程
2019/01/27 PHP
php适配器模式简单应用示例
2019/10/23 PHP
this[] 指的是什么内容 讨论
2007/03/24 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
jQuery toggleClass应用实例(附效果图)
2014/04/06 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
有趣的JavaScript隐式类型转换操作实例分析
2020/05/02 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
PHP webshell检查工具 python实现代码
2009/09/15 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
2012/12/13 HTML / CSS
资产评估专业学生的自我鉴定
2013/11/14 职场文书
西门豹教学反思
2014/02/04 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
煤矿班组长竞聘书
2014/03/31 职场文书
合同意向书范本
2014/07/30 职场文书
委托书的写法
2014/08/30 职场文书
自主招生自荐信格式范文
2015/03/25 职场文书
创业计划书之餐饮
2019/09/02 职场文书
python简单验证码识别的实现过程
2021/06/20 Python
Go gorilla/sessions库安装使用
2022/08/14 Golang