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 &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
Jun 02 Javascript
js遍历td tr等html元素
Dec 13 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
原生js和jQuery随意改变div属性style的名称和值
Oct 22 Javascript
分享使用AngularJS创建应用的5个框架
Dec 05 Javascript
JS实现关闭当前页而不弹出提示框的方法
Jun 22 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
jQuery实现div横向拖拽排序的简单实例
Jul 13 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
js实现省份下拉菜单效果
Feb 15 Javascript
详解vue express启动数据服务
Jul 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
星际流派综述
2020/03/04 星际争霸
一个简单的PHP入门源程序
2006/10/09 PHP
php生成WAP页面
2006/10/09 PHP
一个捕获函数输出的函数
2007/02/14 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
php中使用websocket详解
2016/09/23 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
jQuery的学习步骤
2011/02/23 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
Mongoose中document与object的区别示例详解
2017/09/18 Javascript
vue移动端轻量级的轮播组件实现代码
2018/07/12 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
vue - vue.config.js中devServer配置方式
2019/10/30 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
2020/09/04 Javascript
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
对python中的argv和argc使用详解
2018/12/15 Python
Django restframework 源码分析之认证详解
2019/02/22 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
励志演讲稿范文
2014/04/29 职场文书
机关职员工作检讨书
2014/10/23 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
HR在给员工开具离职证明时,需要注意哪些问题?
2019/07/03 职场文书
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js