- 登录成功获取 token 接口后置脚本:
const d = new Date();
const nowTime = d.getTime();
const jsonData = pm.response.json()
const access_token = jsonData['access_token']
const refresh_token = jsonData['refresh_token']
const expires_in = jsonData['expires_in']
const refresh_expires_in = jsonData['refresh_expires_in']
const token_expires_timestamp = nowTime + expires_in * 1000;
const refresh_token_expires_timestamp = nowTime + refresh_expires_in * 1000;
pm.environment.set("access_token", access_token);
pm.environment.set("refresh_token", refresh_token);
pm.environment.set("expires_in", expires_in);
pm.environment.set("refresh_expires_in", refresh_expires_in);
pm.environment.set("token_expires_timestamp", token_expires_timestamp);
pm.environment.set("refresh_token_expires_timestamp", refresh_token_expires_timestamp);
const cookies = pm.response.headers.get('Set-Cookie')
pm.environment.set("cookies", cookies);
- 其他接口前置脚本:
const baseUrl = pm.environment.get("BASE_URL");
const refreshToken = pm.environment.get("refresh_token");
const cookies = pm.environment.get("cookies");
const token_expires_timestamp = pm.environment.get("token_expires_timestamp");
const refreshTokenRequest = {
url: baseUrl + "/refreshToken",
method: "POST",
header: {
"Authorization": refreshToken,
"Content-Type": 'application/json',
"Connection": "keep-alive",
'User-Agent': 'Apifox/1.0.0 (https://www.apifox.cn)',
"Cookie": cookies
},
body: {
mode: 'raw',
raw: JSON.stringify({
})
}
};
const d = new Date()
const t = d.getTime()
if (t > token_expires_timestamp){
pm.sendRequest(refreshTokenRequest, function(err, res) {
if (res.code == 200) {
const data = res.json()
pm.environment.set('access_token', data['access_token'])
pm.environment.set('refresh_token', data['refresh_token'])
pm.environment.set('expires_in', data['expires_in'])
pm.environment.set('refresh_expires_in', data['refresh_expires_in'])
const token_expires_timestamp = t + data['expires_in'] * 1000;
const refresh_token_expires_timestamp = t + data['refresh_expires_in'] * 1000;
pm.environment.set("token_expires_timestamp", token_expires_timestamp);
pm.environment.set("refresh_token_expires_timestamp", refresh_token_expires_timestamp);
return
}
console.log(res.code)
console.log(refreshTokenRequest)
});
}