如何使用双重身份验证
npm推出了5.5.1版的双重身份验证(2FA),它可以防止他人未经授权访问您的帐户。
举个例子我们登录网上银行进行支付,如果网银使用了2FA,第一次登录到您的网上银行系统时,银行会向您的手机号码发送一个验证码,然后提示您在线输入验证码。这证明手机在你的身上,并且把它连接到你的帐号进行验证。之后,每当银行检测到任何异常情况时(例如从不同笔记本电脑登录),它都会向您的电话发送一个临时验证码,您必须先验证才能登录。这提供了一个额外的安全层,因为即使有人获得您的登录凭据,他们也不太可能拥有您的手机。即使有人发现你的手机,他们也不太可能破解你的笔记本电脑的密码。
双因身份验证可将保护你的账户,我们建议您的npm帐户实施此功能。
安装设备
要使用您的npm帐户启用2FA,您将需要一个可以生成一次性验证码OTP的应用程序。Authy或 Google Authenticator可以生成一次性验证码(OTP)。将应用程序安装在手机上。
给发布者开启OTP验证
发布者开启OTP:
> npm owner add <user > --otp=123456
如何启用2FA?
要进行双身份验证,请输入符合您希望应用的安全级别的命令(默认情况下为auth-and-writes)。
npm profile enable-2fa
npm profile enable-2fa auth-and-writes
npm profile enable-2fa auth-only
接下来,npm将显示一个QR码:
上图1和2对应如下步骤:
1、把生成的长串账号添加到验证器应用程序中 2、验证器在设置账号以后,会生成验证码(OTP),输入生成的验证放入上图2位置
输入一次性验证码后,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命令确认它已被设置。
认证级别
有两个级别的身份验证,auth-only和auth-and-writes。
如果您在auth-only模式下启用2FA ,则当您执行以下操作时,npm将触发OTP验证:
- 登录
- 删除2FA
如果在默认的auth-and-writes模式下启用2FA ,则在下列情况下,npm将触发OTP验证OTP:
- 登录
- 改变你的个人资料
- 创建或撤销令牌
- 发布npm包
- 改变访问
- 更改您的密码
- 删除2FA
示例
一旦你安装了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'来确认新的设置。
删除双重身份验证
如果您觉得双重身份验证操作很麻烦,删除2FA即可,输入如下命令:
> npm profile disable-2fa
npm会提示输入密码:
> npm password:
npm会提示输入OTP:
> Enter one-time password from your authenticator:
删除成功提示:
Two factor authentication disabled.
此时再进行操作,不再需要输入OTP验证码了。
如何从命令行发送OTP值
如果您觉得上述输入OTP的方式不太方便,那么可以直接通过命令行输入OTP值,以上面示例为例,还可以如下写法:
> npm profile set fullname Carolyn A. Wombat --otp=567452
Set fullname to Carolyn A. Wombat