У нашому попередньому пості 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}"
}Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow