硬件鉴权接入
设备的激活登录鉴权流程
- 注册
- 登录
- 鉴权
这里跟传统的账号注册,登录是差不多的,只是换了下概念。
**前期准备:**登录管理后台--->创建产品(如果还没的)--->导入设备号到对应的产品下--->品牌秘钥(如果还没有,或者新的品牌)创建品牌秘钥--->接入开发
注册
三元组信息
注册时所需要的三元组信息:
- productKey 产品Key(在物连网云平台里是bid)
- secretKey产品秘钥(在物连网云平台里是secret_key)
- deviceId 设备ID(在物连网云平台里是设备ID)
以上内容,是烧录到设备中的,也就是随着设备出厂,就有的了。其中,pid,secret_key从后台生成。
注册接口
调用地址:
https://app.api.thisiot.com/da/auth/active
请求方法:PUT
body请求参数:
{ "bid":"productKey(bid)", "deviceId":"设备ID", "signMethod":"签名方法", "sign":"签名内容", "timeStamp":"时间戳", "sn":"SN号" }
签名方法,支持MD5、HmacSHA1、HmacSHA256
签名内容:
# 签名内容:deviceId + sn + timeStamp + secretKey
# 比如说:
# deviceId = 1
# sn = 2
# timeStamp = 3
# secretKey = 4 注意,秘钥是从管理中心获取的
# MD5签名内容为:1234,签名结果为:81DC9BDB52D04DC20036DBD8313ED055
# HmacSHA1和HmacSHA256的签名内容为:123,秘钥为4
# HmacSHA1签名结果:51A52A6BFBA5178293DC18F683619C99D6A01101
# HmacSHA256签名结果:E0CA6535AE97A559FD7918760912D22917A588B4D84CC640D3E43EFCC19DED8F
注册(激活)结果返回:
参数错误:50003
{ "success":false, "code":50003, "msg":"对应的参数错误提示", "data":null }
签名错误:50019
{ "success":false, "code":50019, "msg":"签名错误", "data":null }
未知设备:50012,设备未录入
{ "success":false, "code":50012, "msg":"未知设备", "data":null }
激活失败:50000,已经激活过了
{ "success":false, "code":50000, "msg":"激活失败", "data":null }
激活成功:20000
{ "success":true, "code":20000, "msg":"激活成功", "data":{ "deviceSecret":"设备的秘钥" } }
设备的秘钥请加密存储,不可泄露。有了以上的信息,就可以去调用登录接口了。
登录
注册完成以后,返回了设备ID和密码
登录地址
https://app.api.thisiot.com/da/auth/login
请求方法:POST
body参数:
{ "bid":"品牌ID,管理中心获取", "deviceId":"设备ID", "deviceSecret":"注册返回的密码", "timestamp":"时间戳Long", "signmethod":"签名算法", "sign":"签名内容" }
签名请参考上面的签名算法支持:同上
签名内容
# deviceId = 1 # deviceSecret = 2 # timestamp = 3 # secretKey = 4,注意,秘钥是从管理中心获取的 # MD5签名内容为:1234,签名结果为:827CCB0EEA8A706C4C34A16891F84E7B # HmacSHA1和HmacSHA256的签名内容为:123,秘钥为4 # HmacSHA1签名结果:491BD81E69EB575DE374B252628B36277DB4884C # HmacSHA256签名结果:875F535F3A6F8842B05D6015703571C9DEAB5F540484CA58ABB5FFDDCB617D28
返回内容:
参数错误:50003
{ "success":false, "code":50003, "msg":"对应的参数错误提示", "data":null }
签名错误:50019
{ "success":false, "code":50019, "msg":"签名错误", "data":null }
设备未激活:50020
{ "success":false, "code":50020, "msg":"设备未激活", "data":null }
密码错误:50021
{ "success":false, "code":50021, "msg":"密码错误", "data":null }
登录成功:20001
{ "success":true, "code":20001, "msg":"登录成功", "data":{ "token":"令牌" } }
令牌长期有效,登录旧的会失效。
鉴权
鉴权的本质,就是校验token是否有效。
鉴权地址:
https://app.api.thisiot.com/da/auth/token?token=xxxx
请求方法:GET
query参数:token 令牌(也可以放在header上,dev-token,或者cookie里也可以,dev-token)
返回值:
- 已登录
{ "success":true, "code":20000, "msg":"账号已登录", "data":{ "deviceId":"设备ID", "productName":"产品名称", "deviceName":"设备名称", "sn":"SN号" } }
- 未登录
{ "success":false, "code":50001, "msg":"账号未登录", "data":null }
仅做鉴权(适用于APP内部鉴权)

第三方鉴权(适用于服务端鉴权)
