用途:为已有 n8n 节点添加标准 OAuth2(Authorization Code / 3LO)凭证支持,适用于任何支持标准 OAuth2 的第三方服务。开始前应先阅读 packages/nodes-base/credentials/ 下同类 OAuth2 凭证文件与测试,理解代码库约定。
主要能力与流程:解析参数确定 NODE_NAME 与是否支持自定义 scope;探查节点目录与已有凭证、package.json 注册位置;研究服务的授权 URL、令牌 URL、必需查询参数、默认 scope,以及是否需要在换取令牌后查询 cloudId/workspace ID;创建 {NODE_NAME}OAuth2Api.credentials.ts 凭证文件(无 authenticate 与 test 块,由 oAuth2Api 机制注入 Bearer token);在 packages/nodes-base/package.json 的 n8n.credentials 中注册;如支持自定义 scope,则在 packages/cli/src/constants.ts 的 GENERIC_OAUTH2_CREDENTIALS_WITH_EDITABLE_SCOPE 中登记;更新 GenericFunctions.ts 的凭证路由分支,网关型服务需增加 cloudId 缓存与查询辅助函数;更新主节点及 Trigger 节点的 credentials 数组与版本/认证选项,保持默认值不变;编写凭证测试与 GenericFunctions.test.ts 路由测试;最后执行验证命令: pnpm test credentials/test/{NODE_NAME}OAuth2Api.credentials.test.ts pnpm test nodes/{NODE_NAME}/test/GenericFunctions.test.ts pnpm typecheck pnpm lint 如修改了 constants.ts,还需在 cli 包中执行 pnpm typecheck。
限制与注意:defaultScopes 为模块级唯一来源;不改变现有默认认证方式;不能跳过 pnpm typecheck;若无法确定端点需向用户确认。具体服务的端点、scope 与网关细节需按实际服务文档确定,资料未逐一提供。