node-red - 节点凭据

时间:2018-01-15 21:27:48

标签: credentials node-red

在节点红色流程中,我有一个带有用户和pass的CassandraDatabase节点。当我导出流时,这些凭据不包含在json中,而是出现带有加密字符串的flows_cred.json文件:

{“$”:“df28 .......

...但是,如果我将此文件复制出来并尝试在其他位置调出我的节点红色实例,我会在启动时获得以下内容:

[warn]加载凭据时出错:SyntaxError:位于0的JSON中出现意外的令牌

...后面是重复的“AuthenticationError:身份验证提供程序未设置”消息。实际上,节点红色流没有获取凭证,所以我必须再次手动输入。

任何人都知道允许我成功导出凭据的技巧吗?

1 个答案:

答案 0 :(得分:4)

凭据文件(flows_cred.json)默认加密,以确保其内容无法轻松阅读。

如果您未在设置文件中提供加密,则Node-RED会为加密生成随机密钥。如果Node-RED的第二个实例没有相同的加密密钥,则它无法解密该文件。

以下是解决此问题所需的步骤。

  1. 编辑您的settings.js文件,并添加一个credentialSecret属性,其中包含您想要的任何字符串值。如果要禁用加密,请将其值设置为false

    credentialSecret: "my-random-string"
    
  2. 重新启动Node-RED并部署更改 - 这将触发Node-RED使用您选择的密钥重新加密您的凭据(如果设置为false,则禁用加密)。

  3. 然后,您可以将流/凭证文件复制到第二个实例,只需确保在其设置文件中为其指定相同的credentialSecret值。

  4. 请注意,设置credentialSecret后,您无法更改其值。