В нашем предыдущем посте EMQX 5.x HTTP password authentication server минимальный пример с использованием NodeJS мы предоставили полный пример того, как реализовать EMQX HTTP-аутентификацию.
Этот пост предоставляет расширение к нашей предыдущей HTTP-аутентификации путём добавления Koa-роутера (т.е. HTTP-эндпоинта / URL) для предоставления ACL-аутентификации, т.е. разрешения или запрета доступа на уровне топиков с пользовательской логикой.
emqx-5-x-http-acl-server-using-nodejs.js
router.post('/emqx/acl', async ctx => {
const body = ctx.request.body;
console.log(body)
// TODO: Этот пример всегда возвращает true
// Вам нужно реализовать вашу логику аутентификации
ctx.body = {
result: "allow",
};
});Добавьте этот код перед app.use(router.routes()); в скрипте из EMQX 5.x HTTP password authentication server минимальный пример с использованием NodeJS.
Мой рекомендованный тело конфигурации авторизации, который вы можете установить в EMQX-дашборде:
emqx_acl_request_body.json
{
"action": "${action}",
"client_id": "${clientid}",
"ip": "${peerhost}",
"topic": "${topic}",
"username": "${username}"
}If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow