如何校验设备和消息合法性

设备通道合法性可以用过username和password校验
要校验消息是否是当前设备发送的,即校验username里的productKey和deviceName,与topic里的productKey和deviceName是否一致,如何同时获取username和topic

建议先看下下面两个文档
https://www.emqx.io/docs/zh/latest/access-control/authz/authz.html
https://www.emqx.io/docs/zh/latest/dashboard/authz.html

你好,文档还是通道安全和发布订阅权限的控制,我想实现这样的校验。比如用户名是01&UL1JvNKZBBmbjnAL&yadqO59Y1AT,发消息的topic是/sys/uPbRGZNq3NH/8FBJFmxaorIpwHPy/thing/service/property,我想校验消息对应的topic里的productKey和deviceName,跟username里的productKey和deviceName是一致的,来保证接收的数据是合法的设备的,该如何实现,用EMQX

一般来说,在 MQTT 中,是使用 ClientID 做为设备唯一标识符,这样只需要将 ClientId 加入到 topic 中,再通过 授权 功能就能实现你的需求,但你现在是将两个数据合并在一起当作 Username,然后又拆分成两部分在 topic 中使用,这种情况下,目前你只能通过 基于 HTTP 应用进行授权 | EMQX 文档 自行处理了

谢谢