You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
import { validatenull } from '@/utils/validate'; |
|
import { getStore } from '@/utils/store.js'; |
|
|
|
export default { |
|
data() { |
|
return { |
|
//刷新token锁 |
|
refreshLock: false, |
|
//刷新token的时间 |
|
refreshTime: '', |
|
}; |
|
}, |
|
created() { |
|
//实时检测刷新token |
|
//this.refreshToken(); |
|
}, |
|
methods: { |
|
//实时检测刷新token |
|
refreshToken() { |
|
this.refreshTime = setInterval(() => { |
|
const token = |
|
getStore({ |
|
name: 'token', |
|
debug: true, |
|
}) || {}; |
|
let date1 = this.$dayjs(token.datetime); |
|
let date2 = this.$dayjs(); |
|
const date = date2.diff(date1, 'seconds'); |
|
if (validatenull(date)) return; |
|
if (date >= this.website.tokenTime && !this.refreshLock) { |
|
this.refreshLock = true; |
|
this.$store |
|
.dispatch('RefreshToken') |
|
.then(() => { |
|
this.refreshLock = false; |
|
}) |
|
.catch(err => { |
|
console.log(err); |
|
this.refreshLock = false; |
|
}); |
|
} |
|
}, 1000); |
|
}, |
|
}, |
|
};
|
|
|