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;
|
if(wx.getStorageSync("AccountInfo") == null || wx.getStorageSync("AccountInfo") == undefined || wx.getStorageSync("AccountInfo") ==""){
|
wx.reLaunch({
|
url: '/login/login/index',
|
})
|
return
|
}
|
// 获取账户信息
|
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信息")
|
|
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)
|
}
|
});
|
}
|
export default API
|