npm 使用安全Token
Token
需要npm 5.5.1或更高版本
每当您登录npm时,都会生成一个安全token
。
token
对您的帐户进行身份验证,并授予您发布和访问模块的权限。
因为token
只是一个十六进制字符串,所以您可以在其他工具(例如,连续集成测试环境)中使用token
,以便该工具可以以完成任务所需的访问权限运行。
例如,Travis-CI提供了可以分配给token
值的环境变量。
这使Travis-CI能够以npm用户身份运行npm,包括安装有权访问的私有软件包的能力。
阅读本章以了解如何管理安全性token
。
注意:如果您希望将token
用于测试和其他特殊目的,则需要执行其他步骤。这些步骤不在本章范围之内。
token
命令使您能够:
- 查看
token
以简化跟踪和管理。 - 创建新
token
,指定只读或完全权限。 - 删除/撤销
token
。 - 根据IP地址范围(CIDR)限制访问。
如何查看您帐户上的token
:
要查看与您的帐户关联的token
,请输入:
npm token list.
下表说明了token
列表。
token
可以是只读的,也可以是CIDR列入白名单的token
。
如果您在配置文件上启用了两因素身份验证,那么您已经实现了附加的安全层。
注意:token
列表显示token
的截断版本。如果需要查看完整的token
,请查看npmrc文件。
如何创建新token
npm token create [--read-only] [--cidr=list]
在创建新token
之前,请确定所需的token
类型:
- 只读(安装/发行权)
- 完全许可(发布权)
- CIDR白名单(受IP地址限制)
新token
的默认设置为完全许可。
- 只读
token
允许安装和分发。 - 完全许可
token
允许安装,分发,发布以及您对帐户拥有的所有权利 - CIDR白名单
token
只能在指定的IP地址范围内使用。例如,使用此功能将token
限制为单个公司或指定的开发人员团队。目前,仅支持IPv4。
如果token
是只读的,则不能将其用于更改程序包。如果token
未明确设置为只读,则它具有完全权限,包括发布和修改权限。
如何创建新的完全许可token
:
要创建新的完全许可权token
,请输入:
npm token create
如果您设置了双重身份验证,将提示您输入npm密码,然后是OTP。npm将显示此表:
提示:保存token
字段的屏幕快照,因为这是您查看token
的唯一机会。
请注意,只读默认为false。
如何创建一个新的只读token
要创建一个新的只读token
,请输入:
npm token create --read-only
如果您设置了两因素身份验证,则将提示您输入npm密码,然后是OTP。npm将显示此表:
请注意,只读设置为true。
如何创建新的CIDR限制token
要限制token
,使其只能从指定的IP地址使用,可以创建CIDR限制的token
。CIDR是无类域间路由的缩写。该CIDR Wiki页面将让你开始。
使用CIDR限制可以使您强制任何使用token
的人或任何系统物理地或远程地位于指定的ip地址范围内。
npm token create --[--cidr=list]
例。:
npm token create --cidr=192.0.2.0/24
如果您设置了两因素身份验证,则将提示您输入npm密码,然后是OTP。npm将显示此表:
如果您看到这样的消息:
npm ERR! CIDR whitelist contains invalid CIDR entry: X.X.X.X./YY,Z.Z.. . .
(返回的字符串是您输入的字符串),请确保CIDR字符串有效且格式正确。注意:npm目前仅支持IPv4。
如何创建CIDR限制的只读token
要创建也是只读的CIDR限制token
,请输入:
npm token create --read-only --cidr=list
如何撤销token
无论token
是何时创建的,都可以删除(撤消)token
。这使您可以控制可能希望收回的访问。
删除token
的命令是:
npm token delete
步骤如下:
类型 npm token list
- 查找与要删除的
token
关联的token
ID。 - 输入’npm token delete 123456’,其中123456是
token
id。注意:token
的截断版本将不起作用。
npm will report 'Removed 1 token'
输入 npm token list
以确认token
已被删除。
以下屏幕截图演示了这些步骤:
注意:屏幕插图中显示的所有标记都已被撤销。
注意:在某些情况下,成功撤消token
可能会延迟一个小时。npm当前正在努力在所有情况下立即撤消。