场景
- 提供的api接口需要验证使用者身份的合法性
流程
- 由api使用者(简称用户端)向api提供者(服务端)申请一组public key/secret key
- 用户端在调用接口请求时,携带上data、public key、salt、由data salt secret key 生成的摘要(可以使用sha1、md5等摘要算法),通过api接口发送给服务端
- 服务端根据public key在DB中搜索到对应的secret key,使用同样的摘要算法计算摘要,对比2个摘要,可验证请求者的身份和数据的完整性
例如
- 可以在http接口的header中设定一下字段
- Auth-ApiKey
- Auth-Sign
- Auth-TimeStamp(salt)
- Auth-Sign的生成
sign = sha1(data+secret key + salt)
- data放入body
- 服务端还可以根据timestamp做一些时效性控制