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 相关文章推荐
关于文本限制字数的js代码
Apr 02 Javascript
js创建对象的方式总结
Jan 10 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
js实现的牛顿摆效果
Mar 31 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
May 18 Javascript
浅谈javascript中的constructor
Jun 08 Javascript
js的各种排序算法实现(总结)
Jul 23 Javascript
Node.js开启Https的实践详解
Oct 25 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
Aug 02 jQuery
JavaScript实现公告栏上下滚动效果
Mar 13 Javascript
原生JavaScript实现幻灯片效果
Feb 19 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网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
2014/10/30 PHP
php获取url参数方法总结
2014/11/13 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
Safari5中alert的无限循环BUG
2011/04/07 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
详解ES6中的Map与Set集合
2019/03/22 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
JavaScript实现图片轮播特效
2019/10/23 Javascript
vue h5移动端禁止缩放代码
2019/10/28 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
Python3 中文文件读写方法
2018/01/23 Python
详解django.contirb.auth-认证
2018/07/16 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
Python: glob匹配文件的操作
2020/12/11 Python
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
四好少年事迹材料
2014/01/12 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书