EMQX 5.x HTTP ACL-сервер з використанням NodeJS

У нашому попередньому пості EMQX 5.x HTTP-сервер парольної аутентифікації мінімальний приклад з використанням NodeJS ми надали повний приклад того, як реалізувати EMQX HTTP-аутентифікацію.

Цей пост надає розширення нашого попереднього HTTP auth шляхом додавання Koa-роутера (тобто HTTP-ендпоінту / URL) для надання ACL-аутентифікації, тобто дозволу або заборони доступу на рівні topic з кастомною логікою.

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-сервер парольної аутентифікації мінімальний приклад з використанням NodeJS.

Мій рекомендований тіло конфігурації авторизації, який ви можете встановити в EMQX dashboard:

emqx_acl_request_body.json
{
  "action": "${action}",
  "client_id": "${clientid}",
  "ip": "${peerhost}",
  "topic": "${topic}",
  "username": "${username}"
}

Дивіться схожі статті за категоріями: EMQX MQTT NodeJS