注意:您必须使用 npm 版本 5.5.1 或更高版本才能使用访问令牌。

访问令牌是使用用户名和密码在使用 API 或 npm 命令行界面 (CLI) 时进行 npm 身份验证的替代方法。访问令牌是一个十六进制字符串,您可以使用它进行身份验证,并且它授予您安装和/或发布模块的权利。

有两种类型的访问令牌可用

您可以创建访问令牌来让其他工具(例如持续集成测试环境)访问您的 npm 包。例如,GitHub Actions 提供存储 秘密(例如访问令牌)的功能,您可以在其中使用这些秘密进行身份验证。当您的工作流运行时,它将能够以您自己的身份完成 npm 任务,包括安装您可以访问的私有包。

您可以通过 Web 或 CLI 使用令牌,哪种方式更简单。您在每个环境中所做的操作将在另一个环境中反映出来。

npm 令牌命令允许您

  • 查看令牌以方便跟踪和管理
  • 创建新的旧版令牌
  • 根据 IP 地址范围 (CIDR) 限制访问权限
  • 删除/撤销令牌

有关在 Web 和 CLI 上创建和查看访问令牌的更多信息,请参阅“创建和查看访问令牌”。

关于旧版令牌

旧版令牌使用与创建它们的用户的相同权限创建。当您运行 npm login 时,npm CLI 会自动生成并使用发布令牌。

旧版令牌有三种不同类型

  • 只读:您可以使用这些令牌从注册表下载包。这些令牌最适合您安装包的自动化和工作流。为了提高安全性,我们建议使用 细粒度访问令牌 而不是这些令牌。
  • 自动化:您可以使用这些令牌下载包和安装新包。这些令牌最适合您发布新包的自动化工作流。自动化令牌不会对 npm 上执行的操作进行 2FA,适合 CI/CD 工作流。为了提高安全性,我们建议使用 细粒度访问令牌 而不是这些令牌。
  • 发布:您可以使用这些令牌下载包、安装包以及更新用户和包设置。我们建议您将它们用于交互式工作流,例如 CLI。如果您的帐户启用了 2FA,发布令牌将需要 2FA 才能在 npm 上执行敏感操作。

旧版令牌没有到期日期。务必注意您的令牌并保护它们以确保帐户安全。有关更多信息,请参阅“保护您的令牌”。

关于细粒度访问令牌

细粒度访问令牌允许您根据要使用令牌的目的来限制对令牌的访问权限。使用细粒度访问令牌,您可以

  • 限制令牌可以访问的包和范围
  • 授予令牌对特定组织的访问权限
  • 设置令牌到期日期
  • 根据 IP 地址范围限制令牌访问
  • 只读读写访问权限之间进行选择

您可以在您的 npm 帐户上创建多达 1000 个细粒度访问令牌。您可以设置令牌的有效期,最少为未来一天。每个令牌最多可以访问 50 个组织,最多可以访问 50 个包、50 个范围或 50 个包和范围的组合。访问令牌与用户的权限相关联;因此,它在任何时间点的权限都不能超过用户。如果用户的包或组织访问权限被撤销,他们的细粒度访问令牌也将被撤销对这些包或组织的访问权限。

当您授予令牌对组织的访问权限时,该令牌只能用于管理组织设置以及与该组织关联的团队或用户。它不会授予令牌发布由该组织管理的包的权利。