Примітка: Якщо ви також хочете реалізувати ACL-авторизацію через HTTP, див. наше розширення цього прикладу: EMQX 5.x HTTP ACL-сервер з використанням NodeJS
Цей сервер реалізує мінімальний HTTP-сервер аутентифікації. У цьому мінімальному прикладі він завжди дозволятиме аутентифікацію — вам потрібно реалізувати власну логіку для перевірки паролів. Примітка: Цей сервер написаний для EMQX версії 5.0 і не працюватиме для EMQX 4.x без модифікації. Див. офіційну документацію з EMQX 5.x HTTP auth для додаткової інформації.
emqx_http_auth_server.js
#!/usr/bin/env node
const router = require('koa-router')();
const koaBody = require('koa-body');
const Koa = require('koa');
const app = new Koa();
app.use(koaBody());
router.post('/emqx/auth', async ctx => {
const body = ctx.request.body;
const username = body.username;
const password = body.password;
// TODO: This example always returns "allow"
// You need to implement your authentication logic
ctx.body = {
result: "allow",
is_superuser: false
};
});
app.use(router.routes());
if (!module.parent) app.listen(19261);Цей скрипт базується на нашому попередньому пості Мінімальний приклад Koa.JS з Router та Body parser, тому ви можете встановити залежності за допомогою
install_emqx_http_server_deps.sh
npm i --save koa koa-router koa-bodyКонфігурація тіла запиту, яку ви можете встановити в EMQX dashboard:
emqx_request_body.json
{
"client_id": "${clientid}",
"password": "${password}",
"username": "${username}"
}Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow