小米应用商店:MAC签名验证

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:小米开放平台网络

小提示:您能找到这篇{小米应用商店:MAC签名验证}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的小米应用商店:MAC签名验证内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">< font-size: 18px;">1.API MAC签名算法

< ">小米开放平台一些API需要进行MA C验证,在调用API时用MAC加密算法对请求进行加密,并将结果放到请求的header中。

< ">1.1 MAC计算

< ">请求内容标准化

< ">标准化的请求字符串,就是用指定的请求属性按照某个规则拼接而成的字符串。在这里,其实标准化请求字符串,就是将nonce,HTTP METHOD,HOST,URI,QUERY以换行符(即:n)为连接符,合并起来得到的字符串(格式串结尾增加n),其中涉及到属性:

< ">标准化示例

54897465748976549:21459478nGETnopen.account.xia北京财经公关公司omi.comn/user/profilenclientId=xxx&amp;token=xxxn

< ">注意:上述换行符“n”仅用于展示

< ">MAC计算

< ">客户端使用MAC算法和MAC密钥来对“标准化的请求字符串”进行加密计算出消息认证码,MAC算法有hmac-sha-1和hmac-sha-256两种,我们目前只支持hmac-sha-1。

mac=HMAC-SHA1(mac_key,标准化的请求字符串)

< ">MAC计算示例,以请求用户基本信息API为例说明:

< ">请求地址:https://open.account.xiaomi.com/user/profile

< ">请求参数:

clientId=179887661252608&token=eJxjYGAQydknLLCFsVyIR-DxSqdTnQFGfX4yDAwMjAzxQJIheJfnRTDtvAhMM8SE_2FgWDw7Rg3MYzdUMFIwVjABMplzE5MBClYRuw

nonce:2870867952176701445:23282360

< ">HTTP方法:GET

< ">拼接得到标准化字符串:

2870867952176701445:23282360nGETnope360百科创建词条n.account.xiamomi.comn/user/profilenclientId=179887661252608&token=eJxjYGAQydknLLCFsVyIR-DxSqdTnQFGfX4yDAwMjAzxQJIheJfnRTDtvAhMM8SE_2FgWDw7Rg3MYzdUMFIwVjABMplzE5MBClYRuwn

< ">Mac Key:

ORhx44qK6Alqf8vt2rGB5f-oPq0

< ">签名结果输出(已Base64编码):

9uvros2WcjMaJ3pH25eQZU9p5pA=

< ">1.2 MAC请求格式

< ">Header格式说明

< ">采用MAC签名验证调用API,需要将相关签名信息放入请求的HTTP请求的header中,第三方在发送API请求时需要在请求header中添加Authorization字段。Authorization字段内容如下:

Authorization:MAC access_token="token value",nonce="随机码",mac="签名值"

< ">字段说明:

< ">access_token:授权时下发的访问令牌

< ">nonce:随机串,计算mac时候使用的nonce

< ">mac:按照上面的方法计算得到的结果(例如:9uvros2WcjMaJ3pH25eQZU9p5pA=)

< ">< font-size: 18px;">2._xmSign签名算法



< ">验证用户密码接口中的_xmSign字段基于API MAC签名算法生成,两者的区别在于MAC签名计算签名的时候使用的是mac_key,_xmSign计算用的是client_secret。

_xmSign=HmacSha1(client_secret,callback标准化字符串)

< ">其中_xmNonce和_xmSign不参与标准化。

< ">_xmSign签名验证示例:

< ">第三方提供的Callback:http://third_url.com/xm

< ">小米验证成功之后调用的callback:



http://third_url.com/xm?xmResult=true&xmUserId=1909031&code=93D6A6663C1095587F68281E654D5526&_xmNonce=5964262989求推广045079397%3A24012419&_xmSign=m%2FM1Ia6fOBfKWUbae5G5UXnqh5I%3D

其中_xmNonce=5964262989045079397:24012419,_xmSign=m/M1Ia6fOBfKWUbae5G5UXnqh5I=



< ">参数:

xmResult=true&xmUserId=1909031&code=93D6A6663C1095587F68281E654D5526(_xmNonce和_xmSign不参与标准化)

< ">nonce:5964262989045079397:24012419

< ">HTTP方法:GET

< ">拼接得到的标准化字符串:

5964262989045079397:24012419nGETnxiaomi.comn/n&code=93D6A6663C1095587F68281E654D5526&xmUserId=1909031&xmResult=truen

< ">client secret:

ORhx44qK6Alqf8vt2rGB5f-oPq0

< ">签名结果输出(已Base64编码):

m/M1Ia6fOBfKWUbae5G5UXnqh5I=

小米应用商店:MAC签名验证

上一篇:小米应用商店的相关错误码定义
下一篇:Facebook广告Spy工具介绍


版权声明:以上主题为“小米应用商店:MAC签名验证"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    小米应用商店:MAC签名验证
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“小米应用商店:MAC签名验证”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通小米应用商店:MAC签名验证的相关事宜。

关键词:小米应用商店:MAC签名验

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号