Postman高级应用(5):再也不用注释签名代码了——自动生成签名

本文介绍了如何使用Postman的Pre-request Script功能自动生成接口签名,避免在接口测试时因签名校验导致的不便。通过编写JavaScript代码,在请求发送前执行,实现了符合服务端签名规则的动态签名生成。此外,还提及了Pre-request Script的其他潜在应用,并提供了相关资源链接。
摘要由CSDN通过智能技术生成

场景

我们在写服务端接口时候,往往需要考虑安全问题,最基本的一点就是接口需要按照约定的规则进行签名校验。一旦接口校验签名,就意味着我们用Postman不能想以前那样顺利的测试了,服务端必定会返回签名失败。我们在本地开发时候,一定有不少开发同学是通过注释掉验签代码来绕开签名,但往往提交代码时候又不小心提交上去。灵活点的签名校验可能会忽略掉来自本机请求的验签,我们这里假设系统设计的没这么灵活,而且即使这样灵活设计也还是解决不了外网要测试dev qa环境的接口无法通过验签的问题。下面我们就利用Postman强大的Pre-request Script功能来实现自动为每个请求生成服务端需要的签名参数。

Pre-request Script

在开始编写案例之前,先简单介绍一下Postman的Pre-request Script到底是个什么东西?从字面意思能猜测出这是一个在请求之前会执行的脚本,我们看下官方给出的流程图,就可以证明我们的猜想。

Pre-request Script是通过Postman的沙盒(Sandbox)来实现的,而Sandbox是一个JavaScript执行环境,里面内置了一部分常用的JS库和函数(下面会介绍到)。所以我们其实是通过编写JavaScript代码,代码在请求发出前先被执行,从而达到自动生成签名的目的。

实战

先切换到Pre-request Script选项卡,开始编写JavaScript代码。

假设服务端的签名算法如下:所有请求参数都放在Body里以json格式提交,里面必须包含一个当前时间戳ts以及签名后得到的sign。对body中除了sign以外的所有字段签名(暂时不考虑json有数组的情况),先按照key升序排列,然后以key=value的形式用&拼接字符串,最后用签名密钥signKey对拼接后的字符串进行SHA1签名得到sign。我们直接贴代码吧。

(function () {
   
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值