字
字节笔记本
2026年5月3日
npm 经典令牌撤销 - 会话认证和 CLI 令牌管理
API中转
¥120
GitHub 宣布完成 npm 经典令牌(classic tokens)的弃用工作,这是 npm 安全强化计划的重要里程碑,旨在加强 npm 的认证系统。
来源: GitHub Blog - Changelog 发布时间: 2025年12月9日
主要变更
1. npm 经典令牌永久撤销
所有现有的 npm 经典令牌已被永久撤销,它们无法再用于认证,也无法重新创建或恢复。
2. 新的会话式认证
从今天开始,使用 npm login 时:
- 将获得2小时会话令牌,而非长期有效的令牌
- 会话令牌在2小时后自动过期,需要重新认证
- 会话令牌不会出现在 UI 或 CLI 令牌列表中(在后台工作)
- 发布操作期间强制执行 2FA,增加额外安全层
3. 新的 CLI 令牌管理工具
npm 引入了专门用于管理细粒度访问令牌的命令行工具:
- 可以直接从终端创建、列出和撤销细粒度令牌
- 无需访问 npm 网站进行令牌管理
- 提供与经典令牌相同的便捷命令行体验
4. 新包默认启用 2FA
从本周开始,2FA 强制执行将成为所有新包发布的默认选项:
- 创建新包时,包设置中将默认启用 2FA
- 从创建之初就保护包的安全,无需手动配置
- 现有包保持其当前的 2FA 设置
5. 旧版 API 端点临时恢复
已临时恢复对旧版 API 端点(/user/org.couchdb.user:)的支持:
- 该端点现在生成与
npm login相同的2小时会话令牌 - 发布时每2小时需要重新认证
- 这是临时措施,该端点的移除计划在未来几个月内进行
注意: 此端点主要影响 Yarn v1 和 v2 用户。建议更新到支持当前 npm 安全标准的现代包管理器或认证方法。
需要采取的行动
如果你仍在使用 npm 经典令牌
你的 npm 经典令牌今天已停止工作。以下是恢复访问的方法:
本地开发
运行 npm login 创建新的2小时会话:
bash
npm login需要定期重新认证,但这能确保更好的安全性。
CI/CD 工作流
创建细粒度访问令牌:
方式1: 使用新的 CLI 命令
bash
npm token create方式2: 在 npm 网站创建 访问 npmjs.com/settings/~/tokens
设置令牌时:
- 可以启用 Bypass 2FA 用于非交互式自动化工作流
- 设置适当的过期时间(写入令牌最长90天)
- 考虑采用 OIDC 可信发布,无需生成和管理令牌
关键要点
- npm 经典令牌已永久撤销
- 新的2小时会话式认证已上线
- 新的 CLI 令牌管理工具可用
- 新包默认启用 2FA
- 旧版 API 端点临时恢复(即将移除)
- Yarn v1/v2 用户需升级到现代工具
相关资源
分享: