凭据覆盖#
凭据覆盖允许你全局设置凭据数据。用户看不到这些数据,但 n8n 会在后台自动使用——例如通过「连接」按钮完成 OAuth 登录,而不暴露客户端密钥。
在编辑器 UI 中,n8n 默认隐藏所有被覆盖的字段,用户可通过凭据上的「连接」按钮使用 OAuth 认证。
用于配置凭据覆盖的环境变量请参阅凭据相关环境变量。
使用环境变量#
将 CREDENTIALS_OVERWRITE_DATA 设为 { CREDENTIAL_NAME: { PARAMETER: VALUE }}。
Warning
不推荐此做法。环境变量在 n8n 中未受特殊保护,数据可能泄露给用户。
使用 REST API#
推荐通过自定义 REST 端点加载数据。
-
将
CREDENTIALS_OVERWRITE_ENDPOINT设为端点应暴露的路径:1export CREDENTIALS_OVERWRITE_ENDPOINT=send-credentials可选:设置
CREDENTIALS_OVERWRITE_ENDPOINT_AUTH_TOKEN,要求以 Bearer 令牌访问该端点。Note
未设置认证令牌时,出于安全考虑,该端点只能被调用一次。
-
准备包含要覆盖凭据的 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
Note
凭据可以扩展其他凭据。例如 googleSheetsOAuth2Api 扩展 googleOAuth2Api。你可以在父级(googleOAuth2Api)上设置参数,所有子凭据都会继承。
持久化#
若要将凭据覆盖存入数据库并在多实例或队列模式下传播到所有 worker,请启用:
1 | |
启用后,n8n 将加密后的覆盖项保存在 settings 表中,并广播 reload-overwrite-credentials 事件以便 worker 重新加载最新值。禁用时,覆盖项保留在加载它们的进程内存中,n8n 不会向 worker 传播,也不会在重启后保留。