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.
 
 
 

62 lines
2.2 KiB

import axios from "axios";
import router from "../router";
export const yztoken = async () => {
//console.log("验证");
//let dqtime = parseInt(new Date().getTime() / 1000); // 当前时间的时间戳
//let tokentime = parseInt(window.sessionStorage.getItem("expires_in")); //登录缓存后的时间戳
let sysConfig = JSON.parse(window.sessionStorage.getItem('sysConfig'))
let dqtime = new Date().getTime(); // 当前时间的时间戳
let expires_in = parseInt(window.sessionStorage.getItem("expires_in"))
console.log("dqtime / expires_in",dqtime,expires_in)
if(!expires_in){
router.push({ path: "/login" });
return;
}
if (dqtime > expires_in) {
console.log("刷新 token dqtime / expires_in",dqtime,expires_in);
//少于300秒 重新拉取
await axios
.post(
sysConfig.apiurl + "/connect/token",
{
client_id: "Peis_App",
grant_type: "refresh_token",
refresh_token: window.sessionStorage.getItem("refresh_token"),
},
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
}
)
.then((res) => {
//console.log('connect/token',res.data)
writetoken(res.data.expires_in);
window.sessionStorage.setItem("token", res.data.access_token);
window.sessionStorage.setItem("refresh_token", res.data.refresh_token);
//console.log('new token:',window.sessionStorage.getItem("token"))
//console.log('new expires_in',window.sessionStorage.getItem("expires_in"))
})
.catch((err) =>{
console.log(sysConfig.apiurl + "/connect/token",{
client_id: "Peis_App",
grant_type: "refresh_token",
refresh_token: window.sessionStorage.getItem("refresh_token"),
},err)
});
}
};
export const writetoken = (addtime) => {
//let date = moment();
let lasttime = new Date(new Date().getTime() + (addtime - 2) * 1000).getTime()
// date.add(addtime, "s");
// let lasttime = parseInt(new Date(date).getTime() / 1000);
// console.log(lasttime);
window.sessionStorage.setItem("expires_in", lasttime); //写入 失效的时间戳
};