node-red - 节点凭证
node-red - Node Credentials
在节点红色流中,我有一个带有用户的 CassandraDatabase 节点并通过。当我导出流程时,这些凭据不包含在 json 中,而是出现一个带有加密字符串的 flows_cred.json 文件:
{"$": "df28.......
...但是,如果我复制此文件并尝试在其他地方启动我的节点红色实例,我会在启动时得到以下信息:
[警告] 加载凭据时出错:语法错误:JSON 位置 0
中的意外标记 �
... 后跟一条重复的 "AuthenticationError: Authentication provider not set" 消息。事实上,node-red 流程还没有获取凭据,所以我必须再次手动输入。
有人知道让我成功导出凭据的诀窍吗?
凭据文件 (flows_cred.json
) 默认加密以确保其内容不易被读取。
如果您没有在设置文件中提供加密密钥,Node-RED 会生成一个随机密钥。如果 Node-RED 的第二个实例没有相同的加密密钥,它将无法解密文件。
以下是解决此问题所需的步骤。
编辑您的 settings.js
文件并添加一个 credentialSecret
属性 以及您想要的任何字符串值。如果要禁用加密,请将其值设置为 false
.
credentialSecret: "my-random-string"
重新启动 Node-RED 并部署更改 - 这将触发 Node-RED 使用您选择的密钥重新加密您的凭据(如果设置为 false,则禁用加密)。
然后您可以将 flow/credential 文件复制到第二个实例,只需确保在其设置文件中为其提供相同的 credentialSecret
值即可。
请注意,一旦设置 credentialSecret
就无法更改其值。
在节点红色流中,我有一个带有用户的 CassandraDatabase 节点并通过。当我导出流程时,这些凭据不包含在 json 中,而是出现一个带有加密字符串的 flows_cred.json 文件:
{"$": "df28.......
...但是,如果我复制此文件并尝试在其他地方启动我的节点红色实例,我会在启动时得到以下信息:
[警告] 加载凭据时出错:语法错误:JSON 位置 0
中的意外标记 �... 后跟一条重复的 "AuthenticationError: Authentication provider not set" 消息。事实上,node-red 流程还没有获取凭据,所以我必须再次手动输入。
有人知道让我成功导出凭据的诀窍吗?
凭据文件 (flows_cred.json
) 默认加密以确保其内容不易被读取。
如果您没有在设置文件中提供加密密钥,Node-RED 会生成一个随机密钥。如果 Node-RED 的第二个实例没有相同的加密密钥,它将无法解密文件。
以下是解决此问题所需的步骤。
编辑您的
settings.js
文件并添加一个credentialSecret
属性 以及您想要的任何字符串值。如果要禁用加密,请将其值设置为false
.credentialSecret: "my-random-string"
重新启动 Node-RED 并部署更改 - 这将触发 Node-RED 使用您选择的密钥重新加密您的凭据(如果设置为 false,则禁用加密)。
然后您可以将 flow/credential 文件复制到第二个实例,只需确保在其设置文件中为其提供相同的
credentialSecret
值即可。
请注意,一旦设置 credentialSecret
就无法更改其值。