若依配置apifox自动登录获取token的脚本
若依 apifox 自动登录
·
配置自动化的方法
为了避免验证码干扰,需要关闭若依的验证码功能。此外,需要配置apifox环境变量LOGOUT_TIME和后台配置的登陆过期时间对应上(单位为毫秒),以防止重复登录。
// 发送登录接口请求的方法
function sendLoginRequest() {
// 获取环境变量中的前置URL
const baseUrl = pm.environment.get("BASE_URL");
// 获取登录用户名和密码
const username = pm.environment.get("LOGIN_USERNAME");
const password = pm.environment.get("LOGIN_PASSWORD");
// 后台配置的过期时间默认为一天
const logOutTime = parseInt(pm.environment.get("LOGOUT_TIME")) || 86400000;
// 构造一个POST x-www-form-urlencoded 格式的请求体
const loginRequest = {
url: baseUrl + "/login",
method: "POST",
header: {
"Content-Type": "application/json",
},
body: {
mode: 'raw',
raw: JSON.stringify({ username, password }),
},
};
// 发送请求
pm.sendRequest(loginRequest, function(err, res) {
if (err) {
console.log(err);
} else {
// 读取接口返回的JSON数据
const jsonData = res.json();
// 将accessToken和过期时间写入环境变量
pm.environment.set("ACCESS_TOKEN", jsonData.token);
pm.environment.set("ACCESS_TOKEN_EXPIRES", new Date().getTime() + logOutTime);
}
});
}
// 获取环境变量中的ACCESS_TOKEN和ACCESS_TOKEN_EXPIRES
const accessToken = pm.environment.get("ACCESS_TOKEN");
const accessTokenExpires = pm.environment.get("ACCESS_TOKEN_EXPIRES");
// 如果ACCESS_TOKEN为空,或ACCESS_TOKEN_EXPIRES已过期,则执行发送登录接口请求
if (!accessToken || (accessTokenExpires && accessTokenExpires <= new Date().getTime())) {
sendLoginRequest();
}
更多推荐


所有评论(0)