利用路由守卫实现token过期后返回登录界面
const timeX = localStorage.getItem("time");
//如果有时间戳存在会判断token是否过期
if(timeX!==null){
const time=timeX.slice(1,-1)//获取了token的过期时间
const tokenTime=new Date(time);
const currentTimeUS=new Date();
const currentTimeCN=new Date(currentTimeUS.getTime()+8*60*60*1000)
if(currentTimeCN>tokenTime&& to.path !== '/login' && to.path !== '/register'){
localStorage.removeItem("user")
localStorage.removeItem("time")
return next('/login')
}
//在登录的时候往localstorage中塞一个date
const currentDate=new Date();
const tokenUselessDate=new Date(currentDate.getTime()+10*60*60*1000);
localStorage.setItem("time",JSON.stringify(tokenUselessDate));
最后加上登录状态异常的弹窗,完善了退出登录时的提醒
总结:这次遇到了不少坑,完成这一个小操作居然花了我2个小时
1.从localstorage中取出来的"time"是带引号的,如果直接丢给date格式化处理他会返回不了正确时间
2.vue的报错一定要仔细看浏览器的控制台,一开始我写入的时候timeX可能为空,后面还有对他进行字符串格式化的处理会导致一旦这玩意取不出来,整个页面就不显示了。
3.一定要注意不要在路由中形成环,我在路由中把登录注册内不包含信息给写上了,不然也会整个页面不显示
利用路由守卫实现token过期后返回登录界面的更多相关文章
- ubuntu忽然不能登录,输入密码正确一直返回登录界面
问题描述 由于配置eclipse命令启动,我修改了 /etc/environment 文件的内容,用命令 shutdown -r -now 重启后,输入密码正确一直返回登录界面. 查了下网上资料:系统 ...
- JavaBean组件<jsp:forward>动作<jsp:param>动作登录页面输入用户名和密码,然后进入检查页面判断是否符合要求,符合要求跳转到成功界面,不符合要求返回登录界面,显示错误信息。
JavaBean组件 JavaBean组件实际是一种java类.通过封装属性和方法成为具有某种功能或者处理某个业务的对象. 特点:1.实现代码的重复利用.2.容易编写和维护.3.jsp页面调用方便. ...
- token回话保持,axios请求拦截和导航守卫以及token过期处理
1:了解token:有时候大家又说token令牌.整个机制是前端第一次登陆发送请求,后端会根据前端的用户名和密码, 通过一些列的算法的到一个token令牌, 这个令牌是独一无二的,前端每次发送请求都需 ...
- Laravel Passport token过期后判断refresh_token是否过期
需求:前后端分离状态下,登录失效(token过期)后,前端需要知道下一步是跳转到登录页面还是使用refresh_token刷新token. 这就需要后端根据是否可以刷新token(refresh_to ...
- vue全局路由守卫beforeEach+token验证+node
在后端安装jsonwebtoken npm i jsonwebtoken --save 在 login.js文件中引入 // 引入jwtconst jwt = require ...
- vue路由守卫应用,监听是否登录
路由跳转前做一些验证,比如登录验证,是网站中的普遍需求. 对此,vue-route 提供的 beforeRouteUpdate 可以方便地实现导航守卫(navigation-guards). 导航守卫 ...
- ubuntu14.04忽然不能登录,输入密码一直返回登录界面
解决方法: 1.ctrl + alt + F1进入命令终端 2.重装gdm,sudo apt-get install gdm 3.修改启动顺序:dpkg -reconfigure gdm 4.重启re ...
- kubeadm 生成的token过期后,集群增加节点
通过kubeadm初始化后,都会提供node加入的token: You should now deploy a pod network to the cluster. Run "kubect ...
- 使用kubeadm 新加入节点(原始token过期后)---转发
kubeadm join kubeadm init 安装完成后你会得到以下的输出,使用join指令可以新增节点到集群,此token 有效期为24小时 You should now deploy a p ...
- thinkphp实现登录后返回原界面
主要思路还是用session记录原地址,在登录后再跳转回原界面 先保存请求login方法界面的url public function savelogin(){ session('returnUrl', ...
随机推荐
- OpenVSCode云端IDE加入Rainbond一体化开发体系
OpenVSCode 是一款基于Web 界面的在线IDE 代码编辑器,只需要PC端存在浏览器即可使用,更轻量,高效,简洁,其基础功能完全继承了微软出品的 VS Code ,可以通过安装扩展的方式继续加 ...
- Vue.js 动画与过渡效果实战
title: Vue.js 动画与过渡效果实战 date: 2024/6/4 updated: 2024/6/4 description: 这篇文章介绍了如何在网页设计中使用过渡动画和组件效果,以及如 ...
- C# 指针简单使用
1. 使用unsafe C# 支持 unsafe 上下文,你可在其中编写不可验证的代码. 在 unsafe 上下文中,代码可使用指针.分配和释放内存块,以及使用函数指针调用方法. C# 中的不安全代码 ...
- Python实现字符串模糊匹配
在一个字符串中,有时需对其中某些内容进行模糊匹配以实现条件的判定,如在"你好,hello,world"中判断是否含有"llo".Python中通过re.se ...
- EF 从设计器改为 DB First时遇到 Keyword not supported: 'data source'.
EF 从设计器改为 DB First时遇到 Keyword not supported: 'data source'. 解决方法: 把providerName="System.Data.En ...
- Scrapy框架(四)--五大核心组件
scrapy的基本使用我们已经掌握,但是各位心中一定会有些许的疑问,我们在编写scrapy工程的时候,我们只是在定义相关类中的属性或者方法, 但是我们并没有手动的对类进行实例化或者手动调用过相关的方法 ...
- Spring扩展——BeanPostProcessor(BPP)
BeanPostProcess简介 在Spring中 BeanPostProcessor 是一个非常重要的接口,它用于在每个bean对象初始化前后修改Bean的属性信息,比如我们最常用的@Autowi ...
- unity Entitas框架简介
插件及文档:https://github.com/sschmid/Entitas-CSharp/wiki/Home 资料: https://zhuanlan.zhihu.com/p/78155704 ...
- poj1338 ugly number 题解 打表
类似的题目有HDU1058 humble number(翻译下来都是丑陋的数字). Description Ugly numbers are numbers whose only prime fact ...
- AtCoder Beginner Contest 302 H. Ball Collector 题解 可撤销并查集
为了更好的阅读体验,请单击这里 AtCoder Beginner Contest 302 H. Ball Collector 题意跳过. 可以视作将 \(a_i, b_i\) 之间连了一条边,然后 \ ...