//bg_task.js
/**
* 刷新token
*/
var RefreshTokenUtil = {
// 单次更新token
doRefreshToken: function(callback = ()=>{}) {
ApiService.doPost({
url: Api.URL.URL_RefreshToken,
data: {
refreshToken: Common.getStorage(SysConst.REFRESH_TOKEN),
appId: encrypt.encryptLong(SysConst.APP_ID)
},
showLoading: false,
success: (res) => {
Common.setStorage(SysConst.REFRESH_TOKEN, res.data.refresh_token);
Common.setStorage(SysConst.TOKEN_PARM_NAME, res.data.access_token);
uni.$emit('tokenUpdate', { token: res.data.access_token });
callback();
},
fail: (err) => {
}
});
},
// 定时任务,刷新token
refreshToken :function() {
setInterval(this.doRefreshToken, SysConst.REFRESH_TOKEN_EXPIRE);
}
};
export default {
RefreshTokenUtil: RefreshTokenUtil,
}
使用方法
uni_login() //封装的uni.login()
.then(res => {
LoginUtil.login(res.code, 'miniApp') //wxLogin后台拿code换wx数据去
.then(() => {
// 启动定时任务,刷新token
BgTask.RefreshTokenUtil.refreshToken();
//其他逻辑
})
.catch(err => {
console.error('/pages/entrance/event wxlogin......',
JSON.stringify(err));
});
})
网友评论