npm用户账户双重身份验证配置指南
npm用户账户双重身份验证配置指南
npm是JavaScript的包管理器,广泛应用于前端和后端开发。为了保护账户安全,npm提供了双重身份验证(2FA)功能。本文将详细介绍如何在npm用户账户上配置2FA,包括从网站和命令行两种方式。
配置双重身份验证
你可以在你的npm用户账户上启用双重身份验证(2FA),以防止未经授权访问你的账户和包,方法是使用移动应用中的security-key或基于时间的一次性密码(TOTP)。
先决条件
在你的npm用户账户上启用2FA之前,你必须:
- 将你的npm客户端更新到5.5.1或更高版本。
- 要配置安全密钥,需要支持WebAuthn的现代浏览器。这将允许你配置具有Apple触控ID、人脸识别或Windows Hello以及物理按键(例如Yubikey、Thetis或Feitian)的生物识别设备。
- 要配置TOTP,你需要在移动设备上安装可以生成OTP(例如Authy、谷歌身份验证器或微软身份验证器)的身份验证器应用。
注意:npm不接受SMS(文本到调用)作为2FA方法。
从网站配置2FA
启用2FA
- 在npm“登录”页面上,输入您的帐户详细信息并单击登录。
- 在页面的右上角,点击您的个人资料照片,然后点击帐户。
- 在账户设置页面的"双重身份验证"下,单击启用2FA。
- 当出现提示时,请提供你当前的账户密码,然后单击确认密码继续。
- 在2FA方法页面上,选择你要启用的方法,然后单击继续。有关支持的2FA方法的更多信息,请参阅"关于双重身份验证"。
- 配置你选择的2FA方法:
- 使用安全密钥时,为其提供名称并单击添加安全密钥。按照浏览器特定的步骤添加你的安全密钥。
- 以下是在MacOS上运行的Microsoft Edge的配置示例
- 在手机上使用身份验证器应用时,打开该应用并扫描两步验证页面上的二维码。输入应用生成的代码,然后单击验证。
- 在恢复代码页上,将恢复代码复制到你的计算机或其他非第二重设备的安全位置。我们建议使用密码管理器。
- 确认你已保存代码后,单击返回设置。
禁用2FA写入
查看授权和写入部分,了解有关启用此模式时需要2FA的不同操作的更多信息。
注意:作为推荐设置,在设 置2FA时会自动启用用于写入操作的2FA。以下步骤说明了如何禁用它。
- 在npm“登录”页面上,输入您的帐户详细信息并单击登录。
- 在页面的右上角,点击您的个人资料照片,然后点击帐户。
- 在账户设置页面的"双重身份验证"下,单击修改2FA。
- 从"管理双重身份验证"导航到"其他选项"部分
- 清除"写入操作需要双重身份验证"的复选框并单击"更新 首选项"
禁用2FA
如果你启用了2FA,则可以将其从你的账户设置页面中删除。
注意:如果你是执行2FA的组织的成员,则不能删除2FA。你可以从"组织"选项卡下的个人资料页面查看组织成员列表。
- 在npm“登录”页面上,输入您的帐户详细信息并单击登录。
- 在页面的右上角,点击您的个人资料照片,然后点击帐户。
- 在账户设置页面的"双重身份验证"下,单击修改2FA。
- 滚动到"管理双重身份验证"页面的底部,然后单击禁用2FA。
- 同意浏览器的提示。
从命令行配置2FA
从命令行启用2FA
尽管带有WebAuthn的安全密钥可用于从Web和命令行进行身份验证,但它只能从Web配置。从命令行启用2FA时,目前唯一可用的选项是使用TOTP移动应用。
注意:你在命令行上配置的设置也将应用于你在npm网站上的配置文件设置。
- 如果你在命令行上注销,请使用
npm login
命令登录。 - 在命令行上,键入
npm profile
命令以及要启用的2FA模式的选项:
- 要为授权和写入启用2FA,请键入:
npm profile enable-2fa auth-and-writes
- 要仅为授权启用2FA,请键入:
npm profile enable-2fa auth-only
- 要将npm添加到你的身份验证器应用,使用带有应用的设备,你可以:
- 扫描命令行显示的二维码。
- 输入二维码下方显示的数字。
- 当系统提示你从验证器添加OTP代码时,在命令行上输入验证器应用生成的一次性密码。
从命令行发送一次性密码
如果你已启用2FA auth-and-writes,则需要从命令行发送TOTP才能使某些命令正常工作。为此,请在命令末尾附加--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
从命令行删除2FA
- 如果你在命令行上注销,请使用
npm login
命令登录。 - 在命令行上,键入以下命令:
npm profile disable-2fa
- 出现提示时,输入你的npm密码:
npm password:
- 当系统提示你输入一次性密码时,请从你的身份验证器应用中输入密码:
Enter one-time password from your authenticator: **123456**
配置账户恢复选项
在你的npm用户账户上启用2FA时,我们强烈建议你将GitHub和/或Twitter账户链接到你的npm用户账户。如果你无法访问2FA设备和恢复代码,这些关联账户可用于验证你的身份并加快npm账户的恢复。
- 在npm“登录”页面上,输入您的帐户详细信息并单击登录。
- 在页面的右上角,点击您的个人资料照片,然后点击帐户。
- 对于链接你的GitHub账户,在账户设置页面的"关联账户和恢复选项"下,单击链接到GitHub。
- 在授权页面上,验证所有信息是否正确。然后单击授权npm账户链接。
- 对于链接你的推特账户,在账户设置页面的"关联账户和恢复选项"下,单击与Twitter链接。
- 在授权页面上,验证所有信息是否正确。然后单击授权应用。
Twitter或GitHub账户现已链接到你的npm账户。要删除任一账户的链接,你可以单击要从npm账户中删除的账户旁边的"删除"按钮。
解决TOTP错误
如果你输入的似乎是有效的TOTP但你看到错误,请确保你使用的是正确的身份验证器账户。如果你有多个身份验证器账户,则使用来自错误账户的TOTP会导致错误。
此外,当你在禁用双重身份验证后重置它时,身份验证器可能会创建另一个具有相同名称的账户。请参阅身份验证器文档以删除旧账户。