N8N中文教程
集成节点/Built in_nodes/Credentials

HTTP 请求凭据#

你可以使用这些凭据来认证以下节点:

  • HTTP Request
  • HTTP Request Tool (legacy)

前提条件#

你必须使用目标应用或服务所要求的认证方式。 如果需要通过 SSL 证书来保护认证安全,请参考 提供 SSL 证书 获取所需信息。

支持的认证方式#

  • 预定义凭据类型(Predefined credential type)
  • Basic 认证(Basic auth,通用凭据类型)
  • 自定义认证(Custom auth,通用凭据类型)
  • Digest 认证(Digest auth,通用凭据类型)
  • Header 认证(Header auth,通用凭据类型)
  • Bearer 认证(Bearer auth,通用凭据类型)
  • OAuth1(通用凭据类型)
  • OAuth2(通用凭据类型)
  • 查询参数认证(Query auth,通用凭据类型)

有关通用凭据类型的更多信息,请参考 HTTP 认证。

预定义凭据类型

当你要连接的服务有对应的预定义凭据类型时,n8n 推荐优先使用该类型。相比配置通用凭据,这种方式更简单且易于管理。

你可以使用 预定义凭据类型,在 n8n 已支持该平台节点的情况下,对某些 API 执行自定义操作。例如,n8n 提供了 Asana 节点,并支持在 HTTP Request 节点中使用你的 Asana 凭据。更多详情请参阅 自定义操作。

使用预定义凭据类型#

要使用预定义凭据类型,请按以下步骤操作:

  1. 打开你的 HTTP Request 节点,或在工作流中添加一个新节点。
  2. Authentication(认证) 中选择 Predefined Credential Type(预定义凭据类型)
  3. Credential Type(凭据类型) 中选择你想使用的 API。
  4. Credential for <API name><API 名称> 的凭据) 中,你可以:
  5. 如果已有可用凭据,选择现有的平台凭据;
  6. 选择 Create New(创建新的) 来新建一个凭据。

请参考 自定义 API 操作(Custom API operations) 以获取更多信息。

使用基本认证(basic auth)#

如果您的应用或服务支持基本认证(basic authentication),请使用此通用认证方式。 配置此凭据时,请输入:

  • 用于访问目标应用或服务的 用户名(Username)
  • 与该用户名对应的 密码(Password)

使用摘要认证(digest auth)#

如果您的应用或服务支持摘要认证(digest authentication),请使用此通用认证方式。 配置此凭据时,请输入:

  • 用于访问目标应用或服务的 用户名(Username)
  • 与该用户名对应的 密码(Password)

使用头部认证(header auth)#

如果您的应用或服务支持头部认证(header authentication),请使用此通用认证方式。 配置此凭据时,请输入:

  • HTTP 请求目标应用或服务所需的请求头 名称(Name)
  • 对应请求头的 值(Value)

了解更多关于 HTTP 头部(HTTP headers) 的信息

使用 Bearer 认证(bearer auth)#

如果您的应用或服务支持 Bearer 认证(bearer authentication),请使用此认证方式。这种认证本质上就是一种特定形式的头部认证,其 NameAuthorizationValueBearer <token>。 配置此凭据时,请输入:

  • 需要传递给目标应用或服务的 Bearer Token

了解更多关于 Bearer 认证(bearer authentication) 的信息。

使用 OAuth1#

如果您的应用或服务支持 OAuth1 认证,请使用此通用认证方式。 要配置此凭据,请输入以下信息:

  • 授权 URL(Authorization URL):也称为资源所有者授权 URI(Resource Owner Authorization URI)。该 URL 通常以 /oauth1/authorize 结尾。临时凭据将被发送至此 URL,以提示用户完成授权。
  • 访问令牌 URL(Access Token URL):用于首次请求临时凭据的 URI。该 URL 通常以 /oauth1/request/oauth1/token 结尾。
  • 消费者密钥(Consumer Key):也称为客户端密钥(client key),类似于用户名。它指定调用时使用的 oauth_consumer_key
  • 消费者密钥(Consumer Secret):也称为客户端密钥(client secret),类似于密码。
  • 请求令牌 URL(Request Token URL):授权完成后,用于从临时凭据切换为长期有效凭据的 URI。该 URL 通常以 /oauth1/access 结尾。
  • 选择认证握手所使用的 签名方法(Signature Method)。这将指定调用时使用的 oauth_signature_method。可选项包括:
    • HMAC-SHA1
    • HMAC-SHA256
    • HMAC-SHA512

对于大多数 OAuth1 集成,您需要配置一个应用、服务或集成来生成这些字段的值。请使用 n8n 中的 OAuth 重定向 URL(OAuth Redirect URL) 作为该服务的重定向 URL 或重定向 URI。 了解更多关于 OAuth1 和 OAuth1 授权流程(OAuth1 authorization flow) 的信息。

使用 OAuth2#

如果您的应用或服务支持 OAuth2 认证,请使用此通用认证方式。

配置此凭据的要求取决于所选的 授权类型(Grant Type)。有关每种授权类型的更多信息,请参考 OAuth 授权类型(OAuth Grant Types)。

对于大多数 OAuth2 集成,您需要配置一个应用、服务或集成。请使用 n8n 中的 OAuth 重定向 URL(OAuth Redirect URL) 作为该服务的重定向 URL 或重定向 URI。 了解更多关于 OAuth2 的信息。

授权码(Authorization Code)授权类型#

使用授权码授权类型将授权码换取访问令牌(access token)。认证流程会使用重定向 URL 将用户返回到客户端,然后应用程序从 URL 中获取授权码,并用它请求访问令牌。更多详情请参考 授权码请求(Authorization Code Request)。

要配置此凭据,请选择 Authorization Code(授权码) 作为 Grant Type(授权类型)

然后输入以下信息:

  • 一个 Authorization URL(授权 URL)
  • 一个 Access Token URL(访问令牌 URL)
  • 一个 Client ID(客户端 ID):用于登录的 ID 或用户名。
  • 一个 Client Secret(客户端密钥):用于登录的密钥或密码。
  • 可选:为此凭据输入一个或多个 Scope(作用域)。如果不指定,凭据将请求客户端可用的所有作用域。
  • 可选:某些服务需要额外的查询参数。如果您的服务有此要求,请将其添加为 Auth URI Query Parameters(认证 URI 查询参数)
  • 一种 Authentication(认证) 类型:选择最适合您使用场景的选项。可选项包括:
    • Header(头部):以基本认证头(basic auth header)形式发送凭据。
    • Body(正文):将凭据放在请求体中发送。
  • 可选:选择是否 Ignore SSL Issues(忽略 SSL 问题)。如果启用,即使 SSL 验证失败,n8n 也会建立连接。

客户端凭证(Client Credentials)授权类型#

当应用程序请求访问令牌以访问其自身资源(而非代表用户)时,使用客户端凭证(Client Credentials)授权类型。更多信息请参考 Client Credentials。 要配置此凭据,请将 Grant Type(授权类型)选择为 Client Credentials(客户端凭证)。 然后输入以下信息:

  • Access Token URL(访问令牌 URL):用于启动 OAuth2 流程的 URL。通常该 URL 以 /token 结尾。
  • Client ID(客户端 ID):用于登录客户端的 ID 或用户名。
  • Client Secret(客户端密钥):用于登录客户端的密钥或密码。
  • 可选:为此凭据输入一个或多个 Scope(作用域)。大多数服务不支持客户端凭证授权类型的范围;仅在你的服务支持时才填写。
  • Authentication(认证方式)类型:根据你的使用场景选择最合适的选项。包括:
    • Header(头部):以基本认证(basic auth)头的形式发送凭据。
    • Body(正文):将凭据放在请求体中发送。
  • 可选:选择是否 Ignore SSL Issues(忽略 SSL 问题)。如果启用,即使 SSL 验证失败,n8n 也会建立连接。

PKCE 授权类型#

PKCE(Proof Key for Code Exchange,代码交换证明密钥)是授权码流程的一种扩展,用于防止 CSRF 和授权码注入攻击。 要配置此凭据,请将 Grant Type(授权类型)选择为 PKCE。 然后输入以下信息:

  • Authorization URL(授权 URL)
  • Access Token URL(访问令牌 URL)
  • Client ID(客户端 ID):用于登录的 ID 或用户名。
  • Client Secret(客户端密钥):用于登录的密钥或密码。
  • 可选:为此凭据输入一个或多个 Scope(作用域)。如果不指定,则凭据将请求客户端可用的所有作用域。
  • 可选:某些服务需要额外的查询参数。如果你的服务有此要求,请将其添加为 Auth URI Query Parameters(认证 URI 查询参数)。
  • Authentication(认证方式)类型:根据你的使用场景选择最合适的选项。包括:
    • Header(头部):以基本认证头的形式发送凭据。
    • Body(正文):将凭据放在请求体中发送。
  • 可选:选择是否 Ignore SSL Issues(忽略 SSL 问题)。如果启用,即使 SSL 验证失败,n8n 也会建立连接。

使用查询认证(Query Auth)#

如果你的应用或服务支持通过单个键值对查询参数进行认证,请使用此通用认证方式。(对于多个查询参数,请使用 自定义认证(Custom Auth)。) 要配置此凭据,请输入:

  • 查询参数的键(Name,名称)
  • 查询参数的 Value(值)

使用自定义认证(Custom Auth)#

如果您的应用或服务支持通过多个键值对形式的查询参数传递认证信息,或者您需要比其他通用认证方式更灵活的配置,请使用此通用认证方式。 Custom Auth 凭据需要 JSON 数据来定义您的认证信息。您可以使用 headersqsbody 或它们的组合。请参考以下示例开始使用。

发送两个请求头(Header)#

1
2
3
4
5
6

| ``` { "headers": { "X-AUTH-USERNAME": "username", "X-AUTH-PASSWORD": "password" } }

---|---

### 请求体(Body)#

1 2 3 4 5 6

| ```
{
	"body": {
		"user": "username",
		"pass": "password"
	}
}
```
---|---

### 查询字符串(Query String)#

```
1
2
3
4
5
6
```

| ```
{
"qs": {
"appid": "123456",
"apikey": "my-api-key"
}
}

```
---|---

### 同时发送请求头和查询字符串#
```

1
2
3
4
5
6
7
8

| ``` { "headers": { "api-version": "202404" }, "qs": { "apikey": "my-api-key" } }

---|---

## 提供 SSL 证书#

您可以在 HTTP 请求中附带 SSL 证书。请将 SSL 证书创建为独立的凭据供节点使用:

1. 在 HTTP Request 节点的 **Settings(设置)** 中,启用 **SSL Certificates(SSL 证书)**。
2. 在 **Parameters(参数)** 选项卡中,向 **Credential for SSL Certificates(SSL 证书凭据)** 添加一个已有的 SSL 证书凭据,或创建一个新的凭据。

要配置您的 SSL 证书凭据,您需要提供以下内容:

- 证书颁发机构(Certificate Authority, **CA**)捆绑包
- **证书(Certificate, CRT)**:根据签发 CA 及其格式,也可能称为公钥(Public Key)
- **私钥(Private Key, KEY)**
- _可选_:如果 **私钥** 已加密,请输入私钥的 **Passphrase(密码短语)**

如果您的 SSL 证书位于单个文件中(例如 `.pfx` 文件),您需要打开该文件并从中复制相关信息,粘贴到对应的字段中:

- 将公钥/CRT 内容填入 **Certificate(证书)** 字段
- 将 **Private Key(私钥)** /KEY 内容填入对应字段