Docker运行Node-red以及Node-red http节点权限设置

763 阅读1分钟

Node-red

Node-RED是一款开源的流程编辑器,允许您轻松创建基于事件驱动的IoT(Internet of Things)应用程序

Docker 运行

docker run -d --restart always --network=xx-bridge -e TZ="Asia/Shanghai" -p 0.0.0.0:8880:1880 -v /home/node_red_data:/data --name mynodered nodered/node-red

  • 运行成功之后,拷贝容器data文件夹 docker cp mynodered:/data /home/node_red_data

image.png

  • 销毁原容器,重新执行docker脚本
  • 修改settings.js里面的admin密码

image.png 代码中的password是一段是经过bcrypt算法对密码进行了加密的密文,所以我们要用自己的明文密码生成一段密文,然后粘贴到代码中的password处。

  • 生成密码
  1. 进入node-red容器内部docker exec -it mynodered /bin/bash
  2. 执行命令node-red admin hash-pw xxxx 生成对应xxx的密文

image.png

  • 安装成功,浏览器访问操作页面

Node-red 创建http请求并设置权限访问

image.png

  • 拖动节点,创建一个 /get的get请求 image.png
  • 中间节点function,简单返回一下 image.png
  • 最后的节点http response响应出去 image.png
  • 这样一个简单http请求就模拟成功了

点击部署,访问测试

http://xxxxx:8880/get

image.png

添加权限认证

  1. 修改settings.js的httpNodeAuth,去掉注释,并设置对应的user以及pass,pass的密文也是相同的方法获取。设置完成然后重启容器

image.png 2.请求添加Authorization

  • 将【1】中设置的 user:pass 进行base64编码 xxxxxxxxx
  • 在请求头中添加 Authorization Basic xxxxxxxxx

image.png

这样请求认证就设置完成了