月萌api接口签名规则
月萌api的认证规则目前支持三种形式:
简单签名模式
md5签名认证
hmac签名认证
前置条件:订阅接口以获取key id和key code
简单签名模式, 直接将sign设置为key code即可,月萌api服务网关将会验证key id和key code是否有效,且已关联需访问的接口。此种方式使用简单,常用于开发测试过程中,但因key code直接明码放置在url中,可能有泄露风险(泄露后需在个人中心->订阅详情中重新申请新的key code)。
md5签名认证, 使用md5将请求信息进行hash签名(签名方式见后文或各接口的示例代码),月萌api服务网关对请求参数进行md5签名,此种方式较安全。
hmac签名认证,使用hmac sha1将请求信息进行hash签名(签名方式见后文或各接口的示例代码),月萌api服务网关对请求参数进行hmac sha1签名,此种方式较安全。
注意当前仅支持get参数签名及post application/x-www-form-urlencoded参数签名,对于post的application/json及content-type: multipart/form-data中的参数不参与签名。某些语言的网络请求访问库在post时默认使用content-type: multipart/form-data,此时需要排除这些参数,可以参考各接口页面中本站提供的demo,另外强烈推荐基于这些demo代码进行接口调用,demo中已包含上面三种认证方式,修改参数signmethod即可使用不同的认证方式,另外demo也包含了参数构造及将请求结果json转换成实体类等功能,使用时填写包含todo注释部分即可实现接口调用。
sign生成说明
步骤1. 构造验证字符串
验证字符串包含除sign的所有参数名与参数值(key=value)组合后经字典排序,将排序结果以&拼接起来,最后使用冒号(:)与key code连接起来最终组成验证字符串。
如接口url为:http://api.moonapi.com/148?keyid=1&_t=1639912579&url=http://www.baidu.com, 申请的key id为1,key code为xxxxxxxxxxxxxxxxxxxxxxxx
1. 除sign的所有参数名与参数值(key=value)组合后经字典排序
_t=1639912579, keyid=0, url=http://www.baidu.com
2. 将排序结果以&拼接起来
_t=1639912579&keyid=0&url=http://www.baidu.com
3. 最后使用冒号(:)与key code连接起来最终组成验证字符串
_t=1639912579&keyid=0&url=http://www.baidu.com:xxxxxxxxxxxxxxxxxxxxxxxx
步骤2. 生成sign值
将步骤1构造的验证字符串,使用md5或hmac sha1生成hash签名,md5进行hash后生成32位hash编码(如6a4b5dbcdda39dd35349094e6e19fbc0),hmac sha1生成40位hash编码(如62c34a28d22c53fb6a20451a62917b5263c8241b),某些语言生成的是byte数组,需要转换成16进制的字符串,可参考各接口页面提供的demo代码。注意不要进行base64编码!!
sign生成注意事项
仅支持get参数签名及post application/x-www-form-urlencoded参数签名,其它形式如multipart/form-data中的所有参考均不要参与签名
对于get参数签名及post application/x-www-form-urlencoded参数签名,所有参数除sign外均需包含在构造验证字符串中
某些语言的网络请求会在post时默认使用multipart/form-data
目前各接口示例文档均包含c#, java, php, nodejs, python的示例代码,包含了三种签名方式,请在使用过程参考
麻将胡了pg电子网站的版权属于:月萌api www.moonapi.com,转载请注明出处