在节点红色流程中,我有一个带有用户和pass的CassandraDatabase节点。当我导出流时,这些凭据不包含在json中,而是出现带有加密字符串的flows_cred.json文件:
{“$”:“df28 .......
...但是,如果我将此文件复制出来并尝试在其他位置调出我的节点红色实例,我会在启动时获得以下内容:
[warn]加载凭据时出错:SyntaxError:位于0的JSON中出现意外的令牌
...后面是重复的“AuthenticationError:身份验证提供程序未设置”消息。实际上,节点红色流没有获取凭证,所以我必须再次手动输入。
任何人都知道允许我成功导出凭据的技巧吗?
答案 0 :(得分:4)
凭据文件(flows_cred.json
)默认加密,以确保其内容无法轻松阅读。
如果您未在设置文件中提供加密,则Node-RED会为加密生成随机密钥。如果Node-RED的第二个实例没有相同的加密密钥,则它无法解密该文件。
以下是解决此问题所需的步骤。
编辑您的settings.js
文件,并添加一个credentialSecret
属性,其中包含您想要的任何字符串值。如果要禁用加密,请将其值设置为false
。
credentialSecret: "my-random-string"
重新启动Node-RED并部署更改 - 这将触发Node-RED使用您选择的密钥重新加密您的凭据(如果设置为false,则禁用加密)。
然后,您可以将流/凭证文件复制到第二个实例,只需确保在其设置文件中为其指定相同的credentialSecret
值。
请注意,设置credentialSecret
后,您无法更改其值。