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 文件,找到如下部分被注释的内容:
// securing node-red
// -----------------
// to password protect the node-red editor and admin api, the following
// property can be used. see for details.
//adminauth: {
// type: "credentials",
// users: [{
// username: "admin",
// password: "$2a$08$zzwtxtja0fb1pzd4shcmyocmyz2z6dnbm6tl8sjogenomcxwv9dn.",
// permissions: "*"
// }]
//},
可以看到这部分内容主要提供了一个用户名和加密密码的方式来登录 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, 修改后内容如下所示:
// securing node-red
// -----------------
// to password protect the node-red editor and admin api, the following
// property can be used. see for details.
adminauth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$hq61ljqdzakjoenzazybf.hctkqtjun0brmpfbnhhlc2kcwtflomy",
permissions: "*"
}]
},
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$
再次登录页面,则可以看到需要输入用户名和密码才能登录了。
登录之后和之前相比也有稍许的显示上的不同
来源:
nodered 澳门人威尼斯3966官网:
noderedgithub:
nodered 英文社区:
nodered 中文社区:https://www.iotschool.com/topics/node81
nodered 中文社区 qq 群:8604461