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弹出层永远居中实现思路及代码
Nov 29 Javascript
实例分析js和C#中使用正则表达式匹配a标签
Nov 26 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
Vue2.0如何发布项目实战
Jul 27 Javascript
jQuery plugin animsition使用小结
Sep 14 jQuery
浅谈VUE监听窗口变化事件的问题
Feb 24 Javascript
js自定义input文件上传样式
Oct 26 Javascript
微信小程序实现下拉刷新动画
Jun 21 Javascript
JS实现使用POST方式发送请求
Aug 30 Javascript
Vue实现 点击显示再点击隐藏效果(点击页面空白区域也隐藏效果)
Jan 16 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 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中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
jquery 学习笔记一
2010/04/07 Javascript
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
Nodejs实现微信分账的示例代码
2021/01/19 NodeJs
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
python删除列表中重复记录的方法
2015/04/28 Python
Python版微信红包分配算法
2015/05/04 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
windows下python安装小白入门教程
2018/09/18 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
阿拉伯书店:Jamalon
2019/07/24 全球购物
《动手做做看》教学反思
2014/04/09 职场文书
捐资助学倡议书
2014/04/15 职场文书
班级出游活动计划书
2014/08/15 职场文书
2015大学生实训报告
2014/11/05 职场文书
红色经典观后感
2015/06/18 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
HTML+css盒子模型案例(圆,半圆等)“border-radius” 简单易上手
2021/05/10 HTML / CSS
SQL SERVER触发器详解
2022/02/24 SQL Server