emqx js调用HTTP API菜到的坑


根据官方文档HTTP API | EMQ Docs (emqx.cn)介绍

EMQ X 的 HTTP API 使用 Basic 认证 (opens new window)方式,id 和 password 须分别填写 AppID 和 AppSecret。 默认的 AppID 和 AppSecret 是:admin/public。你可以在 Dashboard 的左侧菜单栏里,选择 "管理" -> "应用" 来修改和添加 AppID/AppSecret。

 然后试着调用

export const clients = () => {
return axios.get(
modelUri + '/api/v4/clients',
{
headers: {
'Authorization': 'Basic ' + Buffer.from('admin/public', 'ascii').toString('base64')
}
}
)
}


发现emqx服务器会报 [error] GET /api/v4/routes error: {request_error,{header,<<"authorization">>},'Malformed header. Please consult the relevant specification.'}, stacktrace:, []
一顿分析···
然后查了查basic认证突然捂了
原来 base64加密的是的。账号:密码 吐了

export const clients = () => {
return axios.get(
modelUri + '/api/v4/clients',
{
headers: {
'Authorization': 'Basic ' + Buffer.from('admin:public', 'ascii').toString('base64')
}
}
)
}
然后调用成功

相关