enc-framework
Version:
enc-framework 核心组件.
69 lines (68 loc) • 2.09 kB
JavaScript
import SessionContextHodler from '../utils/ajm-session'
//import Cookies from 'js-cookie';
class TokenMonitor {
constructor(loginApi,options){
this.$loginApi = loginApi;
this.options = options || {}
this.refshTime= this.options.refshTime || 5*60 ;
this.startTime = 0;
this.lastAjaxTime=0;
}
// 启动
start(){
//Cookies.set('_timer_', 0);
this.interval = setInterval(() =>{
if(!SessionContextHodler.getContext().getTokenInfo()){
this.stop()
}else{
this.startTime++;
this.listenToken();
//this.listenkey_house()
}
}, 1000)
}
//监听token
listenToken(){
/*let tokenInfo = SessionContextHodler.getContext().getTokenInfo()||{};
//后端返回token的有效时间
let expiresTime = tokenInfo.expires_in || 0
//获取TOKEN的时间
let getTokenDateStr = tokenInfo.getTokenDateStr
//当前时间
let nowDateStar = new Date().getTime()
//token有效期内
if(nowDateStar - expiresTime*1000 < getTokenDateStr){
if(this.startTime>=expiresTime){
this.getTokenByRefreshToken()
}
}*/
//console.log(this.startTime)
}
//根据刷新token获取新token
getTokenByRefreshToken(callback){
let tokenInfo = SessionContextHodler.getContext().getTokenInfo()||{};
let params = {refresh_token:tokenInfo.refresh_token}
return this.$loginApi.refreshToken(params).then((res)=>{
let data = res
this.reSetSurvivalTime()
if(callback){
callback(data)
}
return data
});
}
// 停止
stop(){
clearInterval(this.interval)
this.startTime=0
}
//重置计时
reSetSurvivalTime(){
this.startTime=1
}
//设置最后一次请求的时间
setLastAjaxTime(time){
this.lastAjaxTime = time
}
}
export default TokenMonitor;