PostMan Pre-request Script 生成api签名

PostMan Pre-request Script 生成api签名

api接口都会有签名校验,这个校验在我们api测试的时候很不方便,这里来利用postman 前置处理来生成sig 提交。

PostMan设置提交参数

输入图片说明

这里有两个东西我们需要在 Pre-request Script 中预生成来填入提交数据中。

  sig:签名串
  create_time:提交时间

##Pre-request Script 预处理,生成sig

    var appid = 'your appid';
    var appkey = 'your appkey';
   //获取当前时间
    function createTime() {
        return (new Date()).valueOf();
    }
    var time = createTime();
    var method = request.method;//提交方式
    delete request.data["sig"];//将sig排除排序
    console.log(request.data);
    var keys = Object.keys(request.data), i, len = keys.length;
      keys.sort();//根据key经行排序
     console.log(keys)
    // Build the request body string from the Postman request.data object
    var requestBody = "";
    var firstpass = true;
   // 构造数据为 key=param&key=param....字符串
    for(var index in keys){
          if(!firstpass){
            requestBody += "&";
        }
        if(keys[index]=="create_time"){
            request.data[keys[index]]=time;
            console.log(request.data[keys[index]]);
        }
        requestBody += keys[index] + "=" + request.data[keys[index]];
        firstpass = false;
    }
    
      console.log(requestBody);
    //将构造数据url编码
     var encodeURIdata = encodeURIComponent(requestBody);
     console.log(encodeURIdata);
    appkey=appkey+"&";
    //生成密钥
    var signHmacSHA1=CryptoJS.HmacSHA1(encodeURIdata, appkey);
    console.log(signHmacSHA1);
    var base64sha256 = CryptoJS.enc.Base64.stringify(signHmacSHA1);
       console.log(base64sha256);
    //    将变量放入postman 变量中
    postman.setEnvironmentVariable('appid', appid);
    postman.setEnvironmentVariable('create_time', time);
    postman.setEnvironmentVariable('signature', base64sha256);

这样每次提交数据就能 预先构造出sig然后提交了。

参考:

Testing REST API with SHA1 HMAC authentication

httpsig-in-postman-pre-request-script.js

转载于:https://my.oschina.net/u/265943/blog/1575867

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值