api接口编程javascript 编写api接口

       在日常的开发中,会接触到各种接口,有前后端数据传输接口,第三方平台接口。一个平台的前后端数据传输接口一般都会在内网环境下对接,而且也会使用安全框架,所以安全性可以得到较好的保障。但第三方平台接口是外部接口,要对接第三方平台API接口,或者提供API接口给第三方平台调用,这时我们就需要考虑多方面需求,如API接口的安全性、可重复调用、稳定性、好定位问题等等,我们应该如何设计一个优雅的API接口呢?今天跟大家一起来聊聊设计API接口时,需要注意的一些地方。
1、签名
       对外开放的API接口都会面临安全问题,例如伪装攻击、篡改攻击、重放攻击以及数据信息泄露的风险,所以很多时候我们需要对API接口做签名,利用API接口签名能方便的防范这些安全问题和风险。
       签名就是接口请求方将"请求参数+时间戳+密钥"拼接成一个字符串,然后通过md5等hash算法,产生sign,然后在请求参数或请求头中,增加sign参数,传递给API接口。而API接口的网关服务,获取到sign值,然后用相同的"请求参数+时间戳+密钥"拼接成一个字符串,用相同的md5算法生成另外一个sign,对比两个sign值是否相等。如果两个sign相等,则认为是有效请求,API接口的网关服务会将给请求转发给相应的业务系统。如果两个sign不相等,则API接口的网关服务会直接返回签名错误。我们签名中为什么要加时间戳呢?这个是为了安全性考虑,可以验证客户端请求是否在有效时间内,从而避免接口被长时间地重复调用,增加了密钥没破解的可能性,我们要对每次请求都设置一个合理的过期时间,比如:10分钟。这样一次请求在10分钟内是有效的,超过10分钟,则API接口的网关服务会返回超过有效期的异常提示。
目前生成签名中的密钥有两种形式:
       (1)第一种:是双方约定一个固定值privateKey。
       (2)第二种:是API接口提供方给出AK/SK两个值,双方约定用SK作为签名中的密钥进行签名计算。AK接口调用方作为header中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值