非常教程

npm参考手册

入门

如何使用双因素身份验证

需要npm版本5.5.1或更高版本

你是谁,你是谁?我们仔细检查一下。

为了满足日益增长的强大数字安全需求,npm推出了双因素身份验证(2FA)或(tfa)版本5.5.1。双因素身份验证可通过以下两种方法确认您的身份,从而防止未经授权访问您的帐户:

  • 你知道的东西(比如你的用户名和密码)
  • 你有的东西(如手机或平板电脑)

例如,如果您的银行使用2FA,则当您首次登录在线银行系统时,银行会将代码发送到您的手机号码,然后提示您在线输入代码。这证明手机是您手中的,并将其与您的帐户相关联以进行身份​​验证。在此之后,只要银行检测到任何异常情况,例如从其他笔记本电脑登录,它就会向您的手机发送一个临时代码,您必须先输入该代码才能登录。这提供了额外的安全层,因为即使有人获得了您的登录凭据,他们也不太可能拥有您的设备。即使有人找到您的手机,他们也不太可能破解您的笔记本电脑的密码。

双因素身份验证可以防御攻击,我们建议您使用npm帐户实现此功能。

制备

要使用您的npm帐户启用2FA,您将需要一个可以生成一次性密码或OTP的应用程序。例如,Authy 或 Google Authenticator 可以生成一次性密码(OTP)。这些产品使用基于时间的一次性密码算法(TOTP)来创建临时代码。在移动设备或第二台笔记本电脑上安装应用程序,当您在npm帐户中工作时,该笔记本电脑始终可用。(注意:npm不使用SMS(文本到电话)作为验证用户的方法。)

认证级别

有两种级别的身份验证,auth-onlyauth-and-writes

如果在auth-only模式下启用2FA ,则在您执行以下操作时,npm将需要OTP:

  • 登录
  • 删除2FA

如果在auth-and-writes模式下启用2FA ,这是默认设置,当您执行以下操作时,npm将需要OTP:

  • 登录
  • 改变你的个人资料
  • 创建或撤消令牌
  • 发布包
  • 改变访问
  • 更改您的密码
  • 对包进行其他敏感更改
  • 删除2FA

另请参阅本章末尾的表格。

如何启用2FA?

要设置双因素身份验证,您可以使用:

  • 来自网站的配置文件设置 。
  • 命令行界面(CLI)。

本章将介绍这两种方法。选择您最喜欢的方法。

从网络启用2FA

双因素身份验证现在可从网站上作为配置文件设置使用。

  1. 登录npmjs.com。
  2. 单击您的头像以查看选项菜单。

如何使用双因素身份验证

  1. 单击配置文件设置

如何使用双因素身份验证

  1. 向下滚动到“安全”部分:

如何使用双因素身份验证

  1. 在下一页输入您的密码:

如何使用双因素身份验证

  1. 在下一个屏幕上,选择所需的2FA级别。

如何使用双因素身份验证

注意:如果您不确定所需的设置,请参阅本章末尾的表格。

  1. 单击加号以启用所需级别。(如果愿意,您可以稍后更改级别。)

将出现QR码(在屏幕截图中,出于安全原因,代码被屏蔽)。

如何使用双因素身份验证

  1. 按照屏幕上的说明扫描QR码,然后输入。

npm将显示恢复代码。如果您丢失或忘记了第二个因素设备(例如,如果您没有手机),则将使用恢复代码登录。

如何使用双因素身份验证

  1. 打印,截屏并将这些恢复代码保存在非第二要素设备附近的位置。您的密码管理器可能会提供一种安全保存方法。
  2. 保存恢复代码后,按Go Back返回您的个人资料。

成功!您将看到您的“个人资料”页面,其中包含确认您已设置tfa的消息,以及页面“安全性”部分中的指示符。

如何使用双因素身份验证

从命令行启用2FA

键入符合要应用的安全级别的命令(默认为auth-and-writes)。

    npm profile enable-2fa
    npm profile enable-2fa auth-and-writes
    npm profile enable-2fa auth-only

npm将返回此消息:

   > npm notice profile Enabling two factor authentication for auth-and-writes   

或者这条消息:

  > npm notice profile Enabling two factor authentication for auth-only

取决于您提供的设置。

接下来,npm将显示QR码:

如何使用双因素身份验证

  1. 在您的身份验证器应用中添加一个新帐户。
  2. 扫描QR码,或输入QR码正下方显示的数字。

这将配置身份验证器应用程序以供将来使用,将身份验证链接到生成身份验证的设备。

使用您的身份验证器应用程序,在显示的提示符下输入OTP:

    Add an OTP code from your authenticator:

输入一次性密码后,npm将显示以下消息:

2FA successfully enabled.
Below are your recovery codes, please print these out.
You will need these to recover access to your account
if you lose your authentication device.

应用双因素身份验证后,可以使用该npm profile get命令确认已设置。

如何使用双因素身份验证

示例:启用2FA后,从CLI设置配置文件值

注意:使用命令行界面(CLI)定义的设置也将应用于网站。

安装2FA后,您需要输入OTP以获取与安全相关的命令。例如,无论何时使用该命令,npm profile set您都需要输入OTP才能设置或更改值,例如您的全名:

$npm profile set fullname Carolyn A. Wombat
Enter OTP: 567452
Set fullname to Carolyn A. Wombat

使用`npm profile get'确认新设置。

如何使用双因素身份验证

我们的读者请注意:我们已重置屏幕截图中使用的帐户; QR和代码都不活跃。但是,感谢那些向我们提出这个问题的警报和亲切的袋熊。

如何将OTP添加到命令

要将OTP添加到命令,请按如下所示附加它:

npm owner add <user > --otp=123456

恢复代码

设置双因素身份验证后,屏幕上会显示一系列恢复代码。请按照说明打印并保存。注意:某些身份验证器应用程序和密码管理应用程序提供了一种存储恢复代码的方法。

提示:将恢复代码保存在与用于进行身份验证的设备不同的位置。例如,如果您从平板电脑上获取OTP,请不要将代码保存在平板电脑的情况下。

恢复程序解释如下。

如何从配置文件中删除双因素身份验证

要从配置文件中删除2FA,请键入以下命令:

    npm profile disable-2fa

npm将提示您输入密码:

    > npm password:   

根据提示输入您的npm密码,然后npm将显示:

   >Enter one-time password from your authenticator: 123456

npm将确认:

   Two factor authentication disabled.   

如何从命令行发送OTP值

如果已启用2FA auth-and-writes,则需要从命令行发送OTP以使某些命令起作用。为此,请在命令末尾追加 --otp=123456(其中123456是您的身份验证器生成的代码)。这里有一些例子:

npm publish [<tarball>|<folder>][--tag <tag>] --otp=123456
npm owner add <user > --otp=123456
npm owner rm <user> --otp=123456
npm dist-tags add <pkg>@<version> [<tag>] --otp=123456
npm access edit [<package>) --otp=123456
npm unpublish [<@scope>/]<pkg>[@<version>] --otp=123456

什么时候npm需要第二个因素?

如果启用双因素授权,则需要在使用npm时在不同点输入第二个因子。该表解释了这些细节。

如何使用双因素身份验证

故障排除

输入一次性密码后出错

如果您输入的内容似乎是有效的OTP但是您看到错误,请确保您使用的是正确的身份验证器帐户。在下面的屏幕截图中,Authy中的当前帐户设置不正确,因为开发人员有多个npm测试帐户。这将导致OTP失败。此外,如前所述,当您在禁用后重置2fa时,身份验证器可能会创建具有相同名称的第二个帐户。请参阅身份验证器文档以删除旧帐户。

如何使用双因素身份验证

错位的第二因素设备

如果找不到提供第二因素身份验证的设备:

  1. 找到启用2FA时保存的恢复代码。
  2. 如果您已注销,请使用您的登录名和npm密码正常登录。提示输入OTP时,请输入恢复代码。(请注意,这可能会创建具有相同npm帐户名的第二个身份验证器帐户。请务必使用新创建的帐户。)
  3. 登录后,npm profile disable-2fa如果出现提示,请键入并输入您的npm密码。
  4. 看到此提示时输入未使用的恢复代码:
 >Enter one-time password from your authenticator:
  1. npm将确认已禁用双因素身份验证。
  2. 输入npm profile enable-2fa以重新启用2FA,为您的帐户分配不同的设备,并生成新的恢复代码。

错误的恢复代码

如果您错误地放置了提供第二因素身份验证的设备和恢复代码,我们可能无法帮助您恢复帐户。如