Node-RED使用指南:5:设置管理员的登录密码

在这里插入图片描述
Node-RED缺省不需要输入用户名和密码,实际上有一个非常简单的管理员的登录页面可以在外面多少挡一下,缺省的方式是在settings.js中被注释掉了,只要打开就可以看到最简单的登录页面了。这篇文章将对这个使用特性进行介绍。

事前准备

使用官方镜像启动Node-RED的服务,执行命令如下所示:

docker run -it -p 1880:1880 -v $PWD/data:/data -e TZ=Asia/Shanghai --name nodered -d nodered/node-red:1.0.4

  • 启动服务
liumiaocn:nodered liumiao$ docker run -it -p 1880:1880 -v $PWD/data:/data -e TZ=Asia/Shanghai --name nodered  -d nodered/node-red:1.0.4
6bbf3dad2778b5e631e0ff118a85c1195a3282c2df8cf5ce923d6a5eb38d4760
liumiaocn:nodered liumiao$ 
  • 启动确认
    启动后确认服务已经正常启动
liumiaocn:nodered liumiao$ docker ps |grep nodered
6bbf3dad2778        nodered/node-red:1.0.4                         "npm start -- --user…"   11 seconds ago      Up 10 seconds (health: starting)   0.0.0.0:1880->1880/tcp                                                     nodered
liumiaocn:nodered liumiao$ 

启动后在挂载出来的卷内可以看到如下文件

liumiaocn:nodered liumiao$ ls
data
liumiaocn:nodered liumiao$ cd data
liumiaocn:data liumiao$ ls
lib		package.json	settings.js
liumiaocn:data liumiao$ 

通过1880端口无需登录直接可看到如下页面信息
在这里插入图片描述

修改配置

打开settings.js文件,找到如下部分被注释的内容:

119     // Securing Node-RED
120     // -----------------
121     // To password protect the Node-RED editor and admin API, the following
122     // property can be used. See http://nodered.org/docs/security.html for details.
123     //adminAuth: {
124     //    type: "credentials",
125     //    users: [{
126     //        username: "admin",
127     //        password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
128     //        permissions: "*"
129     //    }]
130     //},

可以看到这部分内容主要提供了一个用户名和加密密码的方式来登录Node-RED,密码因为需要硬编码方式保存,此处使用了bcryptj方式加密。可使用如下命令进行加密字符串的生成:

执行命令:node -e “console.log(require(‘bcryptjs’).hashSync(process.argv[1], 8));” 密码字符串内容

比如此处以liumiaocn作为登录密码进行加密:

liumiaocn:data liumiao$ docker exec -it nodered sh
~ $ node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" liumiaocn
$2a$08$hQ61LJqdzAkjoENzAZyBf.HctKQtjUn0bRMPFbnhhLC2KcwTFLOmy
~ $ 

修改settings.js, 修改后内容如下所示:

119     // Securing Node-RED
120     // -----------------
121     // To password protect the Node-RED editor and admin API, the following
122     // property can be used. See http://nodered.org/docs/security.html for details.
123     adminAuth: {
124         type: "credentials",
125         users: [{
126             username: "admin",
127             password: "$2a$08$hQ61LJqdzAkjoENzAZyBf.HctKQtjUn0bRMPFbnhhLC2KcwTFLOmy",
128             permissions: "*"
129         }]
130     },

重启Node-RED服务

liumiaocn:data liumiao$ docker restart nodered
nodered
liumiaocn:data liumiao$ docker ps |grep nodered
6bbf3dad2778        nodered/node-red:1.0.4                         "npm start -- --user…"   25 minutes ago      Up 7 seconds (health: starting)   0.0.0.0:1880->1880/tcp                                                     nodered
liumiaocn:data liumiao$

访问确认

再次登录页面,则可以看到需要输入用户名和密码才能登录了。
在这里插入图片描述
登录之后和之前相比也有稍许的显示上的不同
在这里插入图片描述

发布了1113 篇原创文章 · 获赞 1314 · 访问量 407万+

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/104668767