凭据覆盖(Credential overwrites)#
凭据覆盖允许你全局设置凭据数据。此数据对用户不可见,但 n8n 会在后台自动使用它——例如,通过使用“连接”按钮启用 OAuth 登录而不暴露客户端密钥。
🌐 Credential overwrites let you set credential data globally. This data isn't visible to users, but n8n uses it automatically in the background - for example, to enable OAuth login using a "Connect" button without exposing client secrets.
在编辑器界面中,n8n 默认会隐藏所有被覆盖的字段,因此用户可以使用凭证上的“连接”按钮通过 OAuth 进行身份验证。
🌐 In the Editor UI, n8n hides all overwritten fields by default, so users can authenticate with OAuth using the "Connect" button on the credential.
有关用于配置凭据覆盖的环境变量,请参阅 Credentials environment variables。
🌐 For the environment variables used to configure credential overwrites, refer to Credentials environment variables.
使用环境变量(Using environment variables)#
将 CREDENTIALS_OVERWRITE_DATA 设置为 { CREDENTIAL_NAME: { PARAMETER: VALUE }}。
🌐 Set CREDENTIALS_OVERWRITE_DATA to { CREDENTIAL_NAME: { PARAMETER: VALUE }}.
/// 警告 这种方法不推荐使用。n8n 中的环境变量没有受到保护,所以数据可能会泄露给用户。 ///
使用 REST API(Using the REST API)#
推荐的方法是使用自定义的 REST 端点来加载数据。
🌐 The recommended approach is to load the data using a custom REST endpoint.
-
将
CREDENTIALS_OVERWRITE_ENDPOINT设置为端点应可用的路径:1export CREDENTIALS_OVERWRITE_ENDPOINT=send-credentials可选择地,将
CREDENTIALS_OVERWRITE_ENDPOINT_AUTH_TOKEN设置为要求使用承载令牌来访问该端点。/// 注释 没有认证令牌,出于安全原因,该端点只能调用一次。 ///
-
准备一个包含要覆盖的凭据的 JSON 文件。例如,Asana 和 GitHub 的
oauth-credentials.json:1 2 3 4 5 6 7 8 9 10
{ "asanaOAuth2Api": { "clientId": "<id>", "clientSecret": "<secret>" }, "githubOAuth2Api": { "clientId": "<id>", "clientSecret": "<secret>" } } -
将文件发送到你的 n8n 实例:
1curl -H "Content-Type: application/json" --data @oauth-credentials.json http://localhost:5678/send-credentials如果
CREDENTIALS_OVERWRITE_ENDPOINT_AUTH_TOKEN设置为secure-token:1curl -H "Content-Type: application/json" -H "Authorization: Bearer secure-token" --data @oauth-credentials.json http://localhost:5678/send-credentials
/// 注意
凭证可以扩展其他凭证。例如,googleSheetsOAuth2Api 扩展了 googleOAuth2Api。你可以在父凭证(googleOAuth2Api)上设置参数,所有子凭证都会使用这些参数。
///
持久性(Persistence)#
要在数据库中存储凭据覆盖并将其传播到多实例或队列模式下的所有工作程序,请启用:
🌐 To store credential overwrites in the database and propagate them to all workers in multi-instance or queue mode, enable:
1 | |
启用时,n8n 会将加密的覆盖存储在 settings 表中,并广播一个 reload-overwrite-credentials 事件,以便工作节点重新加载最新值。禁用时,覆盖将保留在加载它们的进程内存中,n8n 不会将它们传播到工作节点,也不会在重启后保留它们。
🌐 When enabled, n8n stores the encrypted overwrites in the settings table and broadcasts a reload-overwrite-credentials event so workers reload the latest values. When disabled, overwrites remain in memory on the process that loaded them and n8n doesn't propagate them to workers or preserve them across restarts.