微信小程序使用API调用新版onenet云平台数据关于token2.0安全鉴权

        目前官方给的token2.0下载好像有问题,但是我们可以根据官方给的各种编程语言提供的算法来自己生成token。

        例如使用官方给的python代码:

    import base64
    import hmac
    import time
    from urllib.parse import quote
    
    def token(user_id,access_key):
        version = '2022-05-01'
        res = 'userid/%s' % user_id
        # 用户自定义token过期时间
        et = str(int(time.time()) + 3600) #注意!注意!注意!此处生成的时间戳只能生效小时,将            
                                          #大括号里的全部替换为未来时间戳即可
        # 签名方法,支持md5、sha1、sha256
        method = 'sha1'
        # 对access_key进行decode
        key = base64.b64decode(access_key)
        # 计算sign
        org = et + '\n' + method + '\n' + res + '\n' + version
        sign_b = hmac.new(key=key, msg=org.encode(), digestmod=method)
        sign = base64.b64encode(sign_b.digest()).decode()
        # value 部分进行url编码,method/res/version值较为简单无需编码
        sign = quote(sign, safe='')
        res = quote(res, safe='')
        # token参数拼接
        token = 'version=%s&res=%s&et=%s&method=%s&sign=%s' % (version, res, et, method, sign)
    
        return token
    
    if __name__ == '__main__':
        user_id = '37715'
        access_key = 'mjgvkTCYTBF6DguxMmm+aV9EkDp2CYfL5jzRTph5Th6KhU8gqZz/cBivPTA7tfY5'
    
        print(token(user_id,access_key))

  注意!et = str(int(time.time()) + 3600)这个时间戳一小时就会失效,可改为et = str(1908654593)

 user_id和access_key分别为自己的以下信息

 微信小程序获取数据

url: 'https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=自己的设备号&device_name=自己的设备名', 

 "authorization": "生成的安全鉴权"

更多编程语言的token算法和更专业指导见官方文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值