async function getToken(loginUrl, data) {
if (!data || !data.account || !data.password) {
return null;
}
var username = data.account
var password = data.password
const options = {
method: “POST”,
json: true,
body: {
“username”: username,
“password”: password
}
}
const dayjs = global.get(“crdayjs”);
let resplet={
data:[],
msg:‘success’,
statusCode:200,在这里插入代码片
}
accountToken = global.get('accountToken')
var nowDate = dayjs().format('YYYY-MM-DD')
//内存里面没有username或者token过期则去请求路由,去内存更新该用户的信息
if (!accountToken[username] || accountToken[username]['valid_date'] < nowDate) {
try {
node.error("重新请求")
resp = await crrequest(loginUrl + "/api/users/login/", options) //请求路由获取token
respState=resp.statusCode //解析状态码,防止用户密码错误
node.error(respState)
if(respState != 200){
resplet[data]='请求token失败'
return resplet
}
let validDate = dayjs().add(7, 'day').format('YYYY-MM-DD') //设置7天有效期
let userInfo = { 'account': username, 'password': password, 'validDate': validDate,'resp' : resp}
accountToken[username] = userInfo
global.set('accountToken', accountToken) //内存保存
} catch (err) {
resplet[data]='出现意外错误'
return resplet;
}
}
returnResp = accountToken[username].resp
return returnResp;
}
在这里插入代码片