luat 编写代码连接onenet 新版MQTTS代码
代码功能:1.动态生成token 密钥
2.根据IMEI号码 自动创建 平台设备
3. 利用生成的token 连接MQTTS 上传数据
工程代码分享github https://github.com/CQADu/luat-onenet-MQTTS.git
token
--[[ | |
连接onenet后台 的token 创建函数 | |
参数 et 密钥过期时间点 字符串 | |
res 实例名称 有API访问的密钥 和设备mqtt 登陆用的密钥 | |
access_key 产品key | |
返回连接用的 密钥 | |
说明:加密方式 为sha1 | |
--]] | |
local function OnenetTokenCreate(et , res ,access_key) | |
-- 密钥时间只能一个小时有效 | |
--res = "products/".. tostring(productsId) | |
--et = os.time() + 3600 | |
--et = 1578231806 | |
method = "sha1" | |
version = '2018-10-31' | |
org1 = et .. '\n' .. method .. '\n' .. res .. '\n' .. version | |
log.info("org1="..org1) | |
key = crypto.base64_decode(access_key,string.len(access_key)) -- 解码 | |
sign_b = crypto.hmac_sha1(org1,string.len(org1),key,string.len(key)) -- 采用hmac 里面的sha1 加密算法 | |
log.info("Hmac_sha1 Hex data = " .. sign_b) | |
sign_b = hex_to_binary(sign_b) | |
log.info("Hmac_sha1 Hex data2 = " .. sign_b) | |
sign = crypto.base64_encode( sign_b, string.len(sign_b) ) -- 对hmac 出来的数据进行 base64 编码 | |
hmacUrl = urlEncode(sign) | |
log.info("经过url 编码的hamc 加密码=" .. hmacUrl) | |
resUrl = urlEncode(res) -- res 字符串也 url 编码 | |
return string.format('version=%s&res=%s&et=%s&method=%s&sign=%s' ,version, resUrl, et, method, hmacUrl) | |
end |
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!