接口鉴权
MCNDATA开放平台使用签名机制对每个接口请求进行权限校验,开发者在调用API时必须带上签名参数signature
,对于校验不通过的请求,服务器将拒绝处理,返回鉴权失败错误。
签名算法
1.使用参数
签名算法中会使用3个参数,分别是secret_key
、timestamp
、access_key
。access_key
和secret_key
是在管理中心创建应用时生成的应用唯一标识和密钥,timestamp
即请求时的毫秒级时间戳。
2.计算步骤
算法的固定流程步骤如下:
- 获取应用的密钥与请求时的时间戳,按
secret_key
+timestamp
+access_key
顺序进行拼接,得到待签名的字符串; - 对该字符串进行
MD5
计算,最终获得一个32位的字符串,即为签名参数signature
。
3.签名示例
以下是使用Python
实现的签名算法代码,开发者可以参考实现其他语言版本。
import hashlib
import time
# 应用的AK和SK
access_key = "YOUR_ACCESS_KEY"
secret_key = "YOUR_SECRET_KEY"
# 13位的当前时间戳
timestamp = round(time.time() * 1000)
# 生成签名
def getSignature(access_key, secret_key, timestamp):
temp = secret_key + str(timestamp) + access_key
return hashlib.md5(temp.encode(encoding='UTF-8')).hexdigest()
复制