告别 NPM Token:迁移到 Trusted Publishing 全记录

💡 原文中文,约3300字,阅读约需8分钟。
📝

内容提要

npm 将于 2025 年 12 月 9 日撤销所有 Classic Token,推出基于会话的认证和新的 CLI Token 管理方式。推荐使用 Granular Access Token 或 OIDC Trusted Publishing,以简化 CI/CD 流程并提升安全性。配置步骤包括设置 Trusted Publisher 和更新 GitHub Actions Workflow,确保 package.json 包含 repository 字段以避免发布错误。

🎯

关键要点

  • npm 将于 2025 年 12 月 9 日撤销所有 Classic Token,推出基于会话的认证和新的 CLI Token 管理方式。

  • 所有 Classic Token 立即失效,npm login 现在只发放 2 小时的短期会话令牌。

  • 推荐在 CI/CD 场景中使用 Granular Access Token 或 OIDC Trusted Publishing。

  • Trusted Publishing 利用 OIDC 协议,让 CI/CD 平台直接与 npm 交换短期凭证,避免存储 npm token。

  • Trusted Publishing 的优势包括没有长期 Token、自动附带来源证明、配置一次后无需维护密钥。

  • 迁移步骤包括在 npmjs.com 配置 Trusted Publisher 和更新 GitHub Actions Workflow。

  • package.json 必须包含 repository 字段,以避免发布错误。

  • pnpm publish 默认会执行 git 检查,需加上 --no-git-checks 参数以避免检查失败。

  • Workflow 必须显式声明权限,缺一不可。

  • 配置成功后需清理旧的 NPM_TOKEN 和不再需要的依赖,进一步加固安全。

延伸问答

npm 何时撤销所有 Classic Token?

npm 将于 2025 年 12 月 9 日撤销所有 Classic Token。

Trusted Publishing 是什么?

Trusted Publishing 利用 OIDC 协议,让 CI/CD 平台直接与 npm 交换短期凭证,避免存储 npm token。

迁移到 Trusted Publishing 的步骤是什么?

迁移步骤包括在 npmjs.com 配置 Trusted Publisher 和更新 GitHub Actions Workflow。

使用 Trusted Publishing 有哪些优势?

优势包括没有长期 Token、自动附带来源证明、配置一次后无需维护密钥。

如何确保 package.json 包含正确的 repository 字段?

package.json 中的 repository 字段应包含正确的 GitHub 仓库信息,格式为 'repository': { 'type': 'git', 'url': 'git+https://github.com/<owner>/<repo>.git' }。

在 GitHub Actions 中使用 npm publish 时需要注意什么?

Workflow 必须显式声明权限,缺一不可,包括 id-token: write 和 contents: read。

➡️

继续阅读