节点可以定义多个属性作为 credentials
。这些属性是单独存储的,不会包括在从编辑器导出流程时的主要流程文件中。
要将凭证添加到节点,请执行以下步骤:
credentials
条目:
credentials: {
username: {type:"text"},
password: {type:"password"}
},
条目接受一个选项 - 其 type
,可以是 text
或 password
。
<div class="form-row">
<label for="node-input-username"><i class="fa fa-tag"></i> 用户名</label>
<input type="text" id="node-input-username">
</div>
<div class="form-row">
<label for="node-input-password"><i class="fa fa-tag"></i> 密码</label>
<input type="password" id="node-input-password">
</div>
请注意,模板使用与常规节点属性相同的元素 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_<property-name>
存在,以指示凭证是否分配了非空值。
oneditprepare: function() {
// this.credentials.username 被设置为适当的值
// this.credentials.password 未设置
// this.credentials.has_password 表示属性在运行时是否存在
...
}
虽然上述的凭证系统足以满足大多数情况,但在某些情况下,有必要在凭证中存储更多值,而不仅仅是用户提供的那些值。
例如,为了支持 OAuth 工作流,节点必须保留用户从未看到的服务器分配的令牌。Twitter 节点提供了一个很好的例子,说明如何实现这一点。
版权所有 OpenJS Foundation 和 Node-RED 贡献者。保留所有权利。OpenJS Foundation 拥有并使用注册商标。有关 OpenJS Foundation 的商标列表,请参阅我们的 商标政策 和 商标列表。未在 OpenJS Foundation 商标列表 中列出的商标和徽标是其各自持有者的商标™或注册商标®。使用它们并不意味着与它们有任何关联或认可。
OpenJS Foundation | 使用条款 | 隐私政策 | OpenJS Foundation 章程 | 商标政策 | 商标列表 | Cookie 政策