设备连接鉴权
接口说明
IoT平台设备侧支持MQTT协议的connect消息接口,鉴权通过后建立设备与平台间的MQTT连接。
参数说明
| 参数 | 必选/可选 | 类型 | 参数描述 |
|---|---|---|---|
| ClientId | 必选 | String(256) | 一机一密的设备clientId由4个部分组成:设备ID、设备身份标识类型、密码签名类型、时间戳,通过下划线“_”分隔。
|
| Username | 必选 | String(256) | 设备ID。 |
| Password | 必选 | String(256) | 加密后的设备密钥。Password的值为使用“HMACSHA256”算法以时间戳为密钥,对secret进行加密后的值。 secret为注册设备时平台返回的secret。 |
设备通过MQTT协议的connect消息进行鉴权,对于构造clientId的各个部分信息都必须包括进去,平台收到connect消息时,会判断设备的鉴权类型和密码摘要算法。
- 当采用“HMACSHA256”校验时间戳方式时,会先校验消息时间戳与平台时间是否一致,再判断密码是否正确。
- 当采用“HMACSHA256”不校验时间戳方式时,鉴权消息也必须带时间戳,但不检验时间是否准确,仅判断密码是否正确。
connect消息鉴权失败时,平台会返回错误,并自动断开MQTT链路。
原生MQTT协议接入建链返回码
原生MQTT协议设备和平台建链时,常见返回码如下:
| 返回码 | 返回码描述 | 原因 |
|---|---|---|
| 0x00 | 连接成功 | 连接成功 |
| 0x01 | 请求拒绝,协议版本错误 | 服务器不支持客户端请求MQTT协议版本 |
| 0x02 | 请求拒绝,无效的客户端标识符 | clientId不符合格式要求或者心跳时间间隔不满足平台要求 |
| 0x03 | 请求拒绝,服务器不可用 | 平台服务不可用 |
| 0x04 | 请求拒绝,用户名或密码错误 | 用户名或密码错误 |
| 0x05 | 请求拒绝,没有授权 | 客户端没有权限连接 |
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.