UNPKG

enc-framework

Version:

enc-framework 核心组件.

69 lines (68 loc) 2.09 kB
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;