N8N中文教程
集成节点/Creating_nodes/Build_your_node/Reference

凭据文件#

凭据文件定义了节点的授权方法。该文件中的设置会影响 n8n 在凭据模态框中显示的内容,并且必须反映您所连接服务的认证要求。

在凭据文件中,您可以使用所有 n8n UI 元素。n8n 会使用加密密钥对通过凭据存储的数据进行加密。

凭据文件结构#

凭据文件遵循以下基本结构:

  1. 导入语句
  2. 创建凭据类
  3. 在类中定义控制节点认证的属性

结构概览#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

| ``` import{ IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties, }from'n8n-workflow';

exportclassExampleNodeimplementsICredentialType{ name='exampleNodeApi'; displayName='Example Node API'; documentationUrl=''; properties:INodeProperties[]=[ { displayName:'API Key', name:'apiKey', type:'string', default:'', }, ]; authenticate:IAuthenticateGeneric={ type:'generic', properties:{ // 可以是 body、header、qs 或 auth qs:{ // 使用上面 apiKey 的值 'api_key':'={{$credentials.apiKey}}' }

}, }; test:ICredentialTestRequest={ request:{ baseURL:'={{$credentials?.domain}}', url:'/bearer', }, }; }

参数#

name#

字符串类型。对象的内部名称。用于从节点的其他位置引用该对象。

displayName#

字符串类型。n8n 在图形界面中使用的显示名称。

documentationUrl#

字符串类型。凭证文档的 URL 地址。

properties#

每个对象包含:

  • displayName:n8n 在图形界面中使用的显示名称
  • name:对象的内部名称。用于从节点的其他位置引用该对象
  • type:期望的数据类型,例如 string
  • default:n8n 用于测试凭证的默认 URL

authenticate#

  • authenticate:对象类型。包含告诉 n8n 如何将认证数据作为 API 请求的一部分进行注入的对象

type#

字符串类型。如果使用在请求头、请求体或查询字符串中发送数据的认证方法,请将此设置为 'generic'

properties#

对象类型。定义认证方法。可选选项包括:

  • body:对象类型。在请求体中发送认证数据。可以包含嵌套对象。
1
2
3
4
5
6
7
8
9

| ``` authenticate:IAuthenticateGeneric={ type:'generic', properties:{ body:{ username:'={{$credentials.username}}', password:'={{$credentials.password}}', }, }, };


---|---
  * `header`:对象类型。在请求头中发送认证数据。

1 2 3 4 5 6 7 8

| ```
authenticate:IAuthenticateGeneric={
type:'generic',
properties:{
header:{
Authorization:'=Bearer {{$credentials.authToken}}',
},
},
};

---|---

  • qs:对象类型。代表"查询字符串"。在请求查询字符串中发送认证数据。
1
2
3
4
5
6
7
8

| ``` authenticate:IAuthenticateGeneric={ type:'generic', properties:{ qs:{ token:'={{$credentials.token}}', }, }, };


---|---
  * `auth`:对象类型。用于基本认证(Basic Auth)。需要将 `username` 和 `password` 作为键名。

1 2 3 4 5 6 7 8 9

| ```
authenticate:IAuthenticateGeneric={
type:'generic',
properties:{
auth:{
username:'={{$credentials.username}}',
password:'={{$credentials.password}}',
},
},
};

---|---

test 测试方法#

提供一个包含 URL 和认证类型的 request 对象,n8n 可使用该凭证进行测试。

1
2
3
4
5
6

| ``` test:ICredentialTestRequest={ request:{ baseURL:'={{$credentials?.domain}}', url:'/bearer', }, };


---|---