我有一个MQTT代理,其中的设备连接到它并将数据发布到代理,我还有一个nodejs程序,它可以帮助客户端订阅主题,并通过设备接收他们发布的数据。
现在,我的用例是为每个客户端提供一个唯一的令牌,它们必须在连接MQTT代理时发送该令牌,以便开始发布数据。我希望使用API验证该客户端令牌,然后在客户端和MQTT代理之间建立连接。
我已经搜索了我的用例,但没有找到任何帮助。
Mosquitto有一个授权插件API,可以让您构建身份验证方案。
API的文档在这里
您还可以在GitHub中搜索现有的身份验证插件,例如。https://github.com/jpmens/mosquitto-auth-plug(这个插件不再开发,但有活动的分叉(
如果您愿意放弃使用Mosquitto,您可以使用aedes node.js库,它可以让您轻松地设置mqtt代理。
在那里,您可以使用handler.authenticate
、handler.authorizePublish
和handler.authorizeSubscribe
来实现您想要的任何身份验证逻辑。不需要依赖插件。