一个节点可以定义多个属性作为credentials。这些属性会与主流程文件分开存储,当从编辑器导出流程时不会被包含在内。
要为节点添加凭据,需按以下步骤操作:
credentials条目:
credentials: {
username: {type:"text"},
password: {type:"password"}
},
这些条目接受一个选项 - 它们的type可以是text或password。
class="form-row">
请注意模板使用了与常规节点属性相同的元素id命名规范。
.js文件中,必须更新对RED.nodes.registerType的调用以包含凭证信息:
RED.nodes.registerType("my-node",MyNode,{
credentials: {
username: {type:"text"},
password: {type:"password"}
}
});
在运行时环境中,节点可以通过credentials属性访问其凭证:
function MyNode(config) {
RED.nodes.createNode(this,config);
var username = this.credentials.username;
var password = this.credentials.password;
}在编辑器中,节点对其凭证的访问权限受到限制。任何text类型的凭证都可以通过credentials属性获取 - 就像在运行时环境中一样。但password类型的凭证不可用。取而代之的是,会有一个对应的布尔属性has_,用于指示该凭证是否已分配了非空值。
oneditprepare: function() {
// this.credentials.username is set to the appropriate value
// this.credentials.password is not set
// this.credentials.has_password indicates if the property is present in the runtime
...
}虽然上述凭证系统在大多数情况下已经足够,但在某些情况下,需要在凭证中存储比用户提供的更多值。
例如,要让一个节点支持OAuth工作流,它必须保留服务器分配的令牌,这些令牌用户是看不到的。Twitter节点提供了一个很好的示例,展示了如何实现这一点。
Node-RED: 面向事件驱动应用的低代码编程平台。
版权所有 OpenJS基金会 及 Node-RED 贡献者。保留所有权利。OpenJS基金会 拥有注册商标并使用商标。有关 OpenJS基金会 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS基金会商标列表 中标注的商标™或注册®商标归其各自持有人所有。使用这些商标并不意味着与它们有任何关联或获得其认可。
The OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS基金会章程 | 商标政策 | 商标列表 | Cookie政策