//在路由文件里写
router.beforeEach((to, from, next) => {
//拿到存储起来的token值
const token = sessionStorage.getItem('USER_UID');
if (to.meta.requiresAuth && !token) { // 如果该路由需要认证,并且没有token
next({ //跳转登入页
name:'login',
query:{redirect:to.fullPath} //路由重定向,需要可以写
});
} else if(to.meta.requiresAuth && token){ //判断路由是否到过期时间,需要则写
const expireTime = sessionStorage.getItem('loginTime') //拿到登入时的时间
const nowTime = new Date().getTime() //获取现在时间
if((nowTime-expireTime)/60000 > 180){ //当前时间减去登入时时间,如果大于180分钟
sessionStorage.removeItem('USER_UID'); //删除掉当前存储起来的token值和登入时间
sessionStorage.removeItem('loginTime');
Message.warning('账号已经过期,请重新登入');
next({
name:'login', //跳转登入页
query:{redirect:to.fullPath}
});
}else{
next(); // 放行
}
}
else {
next(); // 放行
}
})
路由守卫的实现,token过期验证
最新推荐文章于 2024-04-01 12:12:37 发布