Apifox登錄介面密碼進行rsa加密的前置腳本
說明:有些網站登錄時要求對登錄密碼進行加密傳輸,這樣每次除錯其他介面時登錄就非常麻煩,可以使用Apifox(Apifox是類似postman的后端介面除錯工具)前置腳本對傳輸的密碼進行加密

{
"username": "username",
"password": "{{password}}",
"password2" : "123456"
}
- 介面傳參里的password使用{{password}}變數的形式傳輸,未加密的密碼用password2欄位傳輸(在前置腳本里處理密碼的加密,并賦值給變數)
- 選擇前置腳本(腳本內容見下文)

添加腳本

腳本內容
登錄密碼加密
pm.sendRequest(pm.environment.get('BASE_URL') + "/rsaPublickey", function (err, response) {
var publicKey = response.json().data;
console.log(publicKey);
var paramJson = JSON.parse(pm.request.body.raw)
console.log(paramJson)
var password2 = paramJson.password2
var encryptPwd = encrypt(password2, publicKey)
console.log(paramJson)
pm.environment.set("password", encryptPwd);
});
// 加密
function encrypt(encryptData, pubk) {
var jsrsasign = require("jsrsasign");
pubk = "-----BEGIN PUBLIC KEY-----" + pubk + "-----END PUBLIC KEY-----";
// 讀取決議pem格式的秘鑰, 生成秘鑰實體 (RSAKey)
var pub = jsrsasign.KEYUTIL.getKey(pubk);
var enc = jsrsasign.KJUR.crypto.Cipher.encrypt(encryptData, pub);
// console.log("jsrsasign decrypt: " + enc);
// console.log("jsrsasign hextob64: " + jsrsasign.hextob64(enc));
return jsrsasign.hextob64(enc);
}
登錄的token放入環境變數
// 獲取 JSON 格式的請求回傳資料
var jsonData = pm.response.json();
// 將 jsonData.token 的值寫入環境變數
pm.environment.set('token', jsonData.data.access_token);
從環境變數取token放進介面請求頭
// pm.environment.get("token");
// 獲取 Header 引數物件
var headers = pm.request.headers;
// 增加 header 引數
// headers.add({
// key: 'field1',
// value: 'value1',
// });
// 修改 query 引數(如不存在則新增)
headers.upsert({
key: 'Authorization',
value: pm.environment.get("token"),
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/340713.html
標籤:其他
