let Constant = require('../utils/constant.js') let app = getApp() let API = (params)=>{ // console.log(params,2) let tokenInfo = wx.getStorageSync('AccessToken') // console.log(tokenInfo,3) let currentDateTime = new Date().getTime() if(tokenInfo == undefined || tokenInfo == null){ wx.reLaunch({ url: '/login/login/index', }) return } //设置登录时间为七天 判断token是否失效 if(currentDateTime - tokenInfo.ExpreTime > 7 * 60 * 60 * 24 * 1000 && tokenInfo.isNeedToken){ console.log("缓存时间超过七天-----Token失效") wx.reLaunch({ url: '/login/login/index', }) return } let defaultParams = { url: '', method:"GET", data:"", header:{'content-type': 'application/json'}, success:function(){}, fail:function(){}, complete:function(){} } let requestParam = Object.assign(defaultParams, params) if(tokenInfo.isNeedToken == true){ requestParam.header.Authorization = 'Bearer ' + tokenInfo.Token // console.log(tokenInfo.Token,37) // requestParam.header.Authorization = 'Bearer ' + token } // console.log(requestParam,26) // console.log(requestParam.header,29) wx.request({ url: requestParam.url, method:requestParam.method, data:requestParam.data, header:requestParam.header, success:res=>{ let result = res.data if(result.data != undefined && result.data == 401){ RefreshToken(params,API) return } requestParam.success(res) }, fail:err=>{ requestParam.fail(err) }, complete:()=>{ requestParam.complete() } }) } const RefreshToken = (params,apiCb)=>{ let that = this; // 获取账户信息 let accountInfo = JSON.parse(wx.getStorageSync("AccountInfo")) // console.log(accountInfo,60) // 获取登录的用户信息 let userInfo = wx.getStorageSync("LoginUserInfo"); let sysInfo = app.globalData.sysInfo; // console.log('打印userInfo', userInfo) let data={ SoftType:Constant.SoftType, SoftTag:Constant.SoftTag, LoginName: accountInfo.LoginName, LoginPwd: accountInfo.LoginPwd, CorpID: Constant.CorpID, WxCode: accountInfo.WxCode, UJsCode: accountInfo.UJsCode, //是否就是jsCode有待确认 UAvatarUrl: userInfo == null ? "" : userInfo.avatarUrl, UCity: userInfo == null ? "" : userInfo.city, UProvince: userInfo == null ? "" : userInfo.province, UNickName: userInfo == null ? "" : userInfo.nickName, UGender: userInfo == null ? "" : userInfo.gender + "", SBrand: sysInfo.brand, SModel: sysInfo.model, SPlatform: sysInfo.platform, SVersion: sysInfo.version } // console.log(JSON.stringify(data),110) wx.request({ url: Constant.BASE_SERVER_URL + "User/UserLogin/FromCorpWechatApplet@V1.0", method: 'POST', data: data, header: { 'content-type': 'application/json' }, fail: function (err) { //请求失败 wx.showModal({ content: '网络信号不好', showCancel: false, confirmColor: "#39b5de" }); }, success: function (res) { console.log(res,"新的token信息") console.debug("执行到了回调") var result = res.data; // console.log(result); if (result.Code != 0) { wx.showToast({ title: 'token获取失败,请重新登录', icon:"none", duration:2000 }) return; } var return_data = result.Data; if (return_data.Status != 0) { wx.showToast({ title: 'token获取失败,请重新登录', icon:"none", duration:2000 }) return; } let Token = return_data.Token let isNeedToken = false //是否需要Token 当Token失效的时候 判断是否跳转登录 if(Token){ isNeedToken = true } let ExpreTime = new Date().getTime() //获取当前时间戳 wx.setStorageSync('AccessToken', { Token:Token, ExpreTime:ExpreTime, isNeedToken:isNeedToken }) wx.setStorageSync( "AccountInfo",JSON.stringify(data)) // 获取新的token后重新调用接口 apiCb(params) console.debug("执行到了回调") } }); } export default API