Vue设置长时间未操作登录自动到期返回登录页

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设置长时间未操作登录自动到期返回登录页,希望对大家有所帮助!

相关推荐:

怎样在Python Flask中自定义响应状态码_返回tuple元组格式

状态码必须放在元组的第二个位置;三元组格式为(body,status,headers),顺序不可颠倒,headers须为字典或类字典对象。 Flask中返回tuple元组时状态码写在哪一位 Flask的视图函数返回tuple时,状态码必须放在**第二个位置**(索引为1),且该值必须是整数或字符串形...

Django Formset 返回空字典列表的解决方案

当DjangoFormset验证通过但cleaned_data为全空字典列表时,根本原因在于表单字段未被正确识别——关键问题出在CheckboxInput是Widget而非Field,且模板中手动渲染的checkbox缺乏与Form字段的绑定机制。 当djangoformset验证通过但`clean...

如何在 Django Allauth 登录失败时返回 HTTP 401 状态码

当用户使用无效凭据登录djangoallauth应用时,默认返回200(含错误提示),本文介绍一种轻量、可靠的方式——通过自定义中间件,在post登录请求未认证成功时统一将响应状态码设为401。 当用户使用无效凭据登录djangoallauth应用时,默认返回200(含错误提示),本文介绍一种轻量、...

FastAPI 返回空 SQLAlchemy 对象的解决方案

FastAPI路由返回空对象{}是因同步数据库操作与异步路由不匹配导致的ORM实例延迟加载失效;根本原因是未正确使用异步数据库会话方法(如awaitdb.scalar()),导致返回对象在序列化前已脱离会话上下文。 fastapi路由返回空对象`{}`是因同步数据库操作与异步路由不匹配导致的orm实...

Python怎么给导出的Excel文件设置单元格样式_使用xlsxwriter或openpyxl

xlsxwriter必须预定义格式对象再写入,不支持事后补加样式;openpyxl可先写后设样式,但需注意批量赋值和合并单元格的样式同步问题。 用xlsxwriter设置单元格样式必须先创建格式对象 直接对已写入的单元格“补加”样式在xlsxwriter中不可行——它只支持“边写边设”,所有样式必须...

Scrapy ItemLoader 返回列表全部元素的正确配置方法

scrapy的itemloader默认使用takefirst处理器,导致仅返回提取结果中的首个元素;本文详解如何通过修改output_processor(如改用join或identity)来完整保留并合并多段文本。 scrapy的itemloader默认使用takefirst处理器,导致仅返回提取结...