node-red-节点凭证

the*_*ane 4 credentials node-red

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

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

...但是,如果我将此文件复制出来并尝试在其他地方启动我的节点红色实例,则在启动时会得到以下信息:

[警告]加载凭据时出错:SyntaxError:JSON中位置0的意外标记�

...,然后重复出现“ AuthenticationError:未设置身份验证提供程序”消息。确实,凭证红色尚未被节点红流提取,因此我必须再次手动输入。

有人知道允许我成功导出凭据的诀窍吗?

kno*_*ary 7

flows_cred.json默认情况下,凭证文件()已加密,以确保其内容不易读取。

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

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

  1. 编辑settings.js文件并添加具有所需credentialSecret字符串值的属性。如果要禁用加密,请将其值设置为false

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

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

请注意,一旦设置credentialSecret,就无法更改其值。