在vue2的项目中,我想实现一个功能,在登录的时候我会调用一个接口,这个接口会返回给我一个过期时间(例如:2024-06-11 23:14:18),现在,我希望能实现,在每次调用后端接口的时候,都加入一个判断,一旦现在的时间,超过这个接口返回给我的时间,页面直接跳转到登录页面,并弹出一个写好的dialog,请给出思路和代码示例
时间: 2024-03-28 16:37:16 浏览: 109
Consuming-Apis:一个简单的项目,向我介绍前后消费
首先需要获取后端接口返回的过期时间,并将其存储在前端的localStorage中:
```javascript
// 登录成功后获取到过期时间
const expireTime = res.data.expireTime;
// 存储到localStorage中
localStorage.setItem('expireTime', expireTime);
```
接下来,在每次调用后端接口时,需要判断当前时间是否超过过期时间,可以使用`Date.now()`获取当前时间戳,然后将其与过期时间进行比较:
```javascript
// 获取localStorage中存储的过期时间
const expireTime = localStorage.getItem('expireTime');
// 如果过期时间存在且当前时间已经超过过期时间,则跳转到登录页
if (expireTime && Date.now() > new Date(expireTime).getTime()) {
// 跳转到登录页
this.$router.push('/login');
// 弹出提示框
this.$alert('登录已过期,请重新登录', '提示', {
confirmButtonText: '确定'
});
}
```
最后,建议将以上代码封装在一个统一的请求拦截器中,这样可以确保在每次请求前都会进行过期时间的判断。
阅读全文