目录
1、关于双因素身份验证
2、NPM上的双因素身份验证
3、先决条件
4、从网站配置2FA
4.1 启用2FA
4.2 为写入禁用2FA
4.3 禁用2FA
5、从命令行配置2FA
5.1 从命令行启用2FA
5.2 从命令行发送一次性密码
5.3 从命令行删除2FA
6、配置帐户恢复选项
今天收到一封邮件,提示我的npm账号没有开启双因素身份验证。
首先,我们说一下双因素身份验证,也称双重验证,或者二元验证。启用2FA后,在对您拥有写访问权限的帐户或包执行某些操作之前,系统将提示您进行第二种形式的身份验证。根据您的2FA配置,系统将提示您使用安全密钥或基于时间的一次性密码(TOTP)进行身份验证。
注意:双重身份验证为您的帐户提供了最佳的安全性,可以抵御攻击者。我们强烈建议您在注册后尽快在您的帐户上启用2FA。
npm上的双因素身份验证可以启用授权和写入,或仅授权。
默认情况下,为授权和写入启用2FA。我们将为某些授权操作以及写入操作请求第二种形式的身份验证。
动作 | CLI命令 |
---|---|
登录npm | npm login |
更改配置文件设置(包括密码) | npm profile enable-2fa auth-and-writes |
更改用户帐户的2FA模式 | npm profile enable-2fa auth-and-writes |
为您的用户帐户禁用2FA | npm profile enable-2fa auth-and-writes |
创建令牌 | npm token revoke |
撤销令牌 | npm token revoke |
发布包 | npm publish |
取消发布包 | npm unpublish |
弃用软件包 | npm deprecate |
更改包可见性 | npm access grant/revokenpm access grant/revoke |
更改用户和团队包访问权限 | npm access grant/revoke |
变更包2FA要求 | npm access grant/revoke |
如果仅为授权启用2FA。我们将仅为某些授权操作请求第二种形式的身份验证。
动作 | CLI命令 |
---|---|
登录npm | npm login |
更改配置文件设置(包括密码) | npm profile enable-2fa auth-and-writes |
更改用户帐户的2FA模式 | npm profile enable-2fa auth-and-writes |
为您的用户帐户禁用2FA | npm profile enable-2fa auth-and-writes |
创建令牌 | npm token revoke |
撤销令牌 | npm token revoke |
1、在npm的登录页面,输入用户名和密码,然后点击“Sign in” 按钮。
未启用双重身份验证之前,会要求输入一次性密码,如下如所示:
2、在页面右上角,单击个人资料图像,但然后单击“Account”
3、在页面找到“Two-Factor Authentication”区域,单击“Enable 2FA”
4、出现“Security key” 和 “Authentication app”,选择第一个安全密钥,继续
5、添加安全密钥,输入有一个安全密钥的名字,然后再点击“Add security key”
提示在当前设备上创建通用密钥。
MacOS上运行的Chrome 浏览器的配置示例,点击“继续”按钮,输入电脑密码,或者指纹。
6、出现恢复代码的页面上,将恢复代码复制到您的计算机或其他非第二因素设备的安全位置。我们建议使用密码管理器。
恢复代码是确保您在无法访问第二因素设备时恢复帐户的唯一方法。每个代码只能使用一次。
7、确认已保存代码后,单击“Go back to setting”。
1、在账户设置页面中,找到“Two-Factor Authenticction”区域,单击“Modify 2FA”
2、 找到“Additional Options”部分,取消选中“Require two-factor authentication for write actions”,然后再单击“Update Preferences”按钮。
1、在账户设置页面中,找到“Two-Factor Authenticction”区域,单击“Modify 2FA”
2、滚动到页面最低部,然后单击“Disable 2FA”,就可以禁用2FA了。
虽然WebAuthn的security-key可以用于Web和命令行的身份验证,但它只能从Web进行配置。从命令行启用2FA时,目前唯一可用的选项是使用TOTP移动的应用程序。
1、打开命令行窗口,使用 “npm login” 命令进行登录。
2、在命令行中,键入 npm profile 命令沿着要启用的2FA模式的选项:
npm profile enable-2fa auth-and-writes
npm profile enable-2fa auth-only
3、要将npm添加到您的身份验证器应用程序中,使用带有应用程序的设备,您可以:
4、当系统提示您从验证器添加OTP代码时,请在命令行中输入验证器应用生成的一次性密码。
如果您启用了2FA auth-and-writes,则需要从命令行发送TOTP以使某些命令生效。为此,请在命令的末尾添加--otp=123456
(其中123456是验证器生成的代码)。以下是几个例子:
npm publish [|][--tag ] --otp=123456
npm owner add --otp=123456
npm owner rm --otp=123456
npm dist-tags add @ [] --otp=123456
npm access edit [) --otp=123456
npm unpublish [<@scope>/][@] --otp=123456
1、如果您在命令行上注销,请使用npm login
命令登录。
2、在命令行中,输入一下命令:
npm profile disable-2fa
3、出现提示时,输入您的npm密码:
npm password:
4、系统提示输入一次性密码时,请从您的验证器应用程序输入密码:
输入验证器的一次性密码:123456
当您在npm用户帐户上启用2FA时,我们强烈建议您将GitHub和/或Twitter帐户链接到您的npm用户帐户。如果您无法访问您的2FA设备和恢复代码,这些链接的帐户可用于验证您的身份并加快恢复您的npm帐户。
2、可以选择链接到Github或者Twitter上,方便忘记密码和密钥,更容易找回。