更新时间:2018-09-11 16:40
友情提示:一般情况下,您不需要自己来计算签名,您可以直接使用我们提供的服务端SDK, 参见SDK手册。
移动推送服务会对每个访问的请求进行身份验证,所以无论使用HTTP还是HTTPS协议提交请求,都需要在请求中包含签名(Signature)信息。服务通过使用Access Key ID
和Access Key Secret
进行对称加密的方法来验证请求的发送者身份。
为了保证云服务的安全,您需要创建一个能访问移动推送资源的 RAM 子账号,获取该子账号的 AK 密钥,并使用这个 RAM 子账号调用移动推送 OpenAPI。
以下是获取 RAM 子账号 AK 密钥的操作步骤:
用户在访问时,按照下面的方法对请求进行签名处理:
StringToSign=
HTTPMethod + “&” +
percentEncode(“/”) + ”&” +
percentEncode(CanonicalizedQueryString)
Signature
参数添加到请求参数中,即完成对请求签名的过程。以GetDeviceInfos
为例,签名前的请求URL为:
http://cloudpush.aliyuncs.com/?Format=XML&AccessKeyId=testid&Action=GetDeviceInfos&SignatureMethod=HMAC-SHA1&RegionId=cn-hangzhou&Devices=e2ba19de97604f55b165576736477b74%2C92a1da34bdfd4c9692714917ce22d53d&SignatureNonce=c4f5f0de-b3ff-4528-8a89-fa478bda8d80&SignatureVersion=1.0&Version=2015-08-27&AppKey=23267207&Timestamp=2016-03-29T03%3A59%3A24Z
那么StringToSign就是:
GET&%2F&AccessKeyId%3Dtestid%26Action%3DGetDeviceInfos%26AppKey%3D23267207%26Devices%3De2ba19de97604f55b165576736477b74%252C92a1da34bdfd4c9692714917ce22d53d%26Format%3DXML%26RegionId%3Dcn-hangzhou%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3Dc4f5f0de-b3ff-4528-8a89-fa478bda8d80%26SignatureVersion%3D1.0%26Timestamp%3D2016-03-29T03%253A59%253A24Z%26Version%3D2015-08-27
假如使用的Access Key Id是“testid”,Access Key Secret是“testsecret”,用于计算HMAC的Key就是“testsecret&”,则计算得到的签名值是:
Q4jj5vC+NRtz294V+oIW7gfaJ6U=
签名后的请求URL为(注意增加了Signature参数):
http://cloudpush.aliyuncs.com/?Format=XML&AccessKeyId=testid&Action=GetDeviceInfos&SignatureMethod=HMAC-SHA1&RegionId=cn-hangzhou&Devices=e2ba19de97604f55b165576736477b74%2C92a1da34bdfd4c9692714917ce22d53d&SignatureNonce=c4f5f0de-b3ff-4528-8a89-fa478bda8d80&SignatureVersion=1.0&Version=2015-08-27&AppKey=23267207&Signature=Q4jj5vC%2BNRtz294V%2BoIW7gfaJ6U%3D&Timestamp=2016-03-29T03%3A59%3A24Z
在文档使用中是否遇到以下问题
更多建议
匿名提交