npm发布包时遇到:This operation requires a one-time password. 如何解决

初来乍到,这是我第一次写博客,注册博客园也没多久,以目前的技术累积暂时写不出什么有质量的技术分享,不过还是想写点东西,所以就谈谈我最近遇到的一个坑吧!希望能帮到遇到过这个问题的朋友。如标题所述,这是在发布或更新npm包时可能会遇到的情况——貌似最近npmjs平台强制开发者们要开启2FA验证了,解决办法如下:
  1. 登录npmjs官网,如果是首次发布就点击头像然后点击account选项然后在页面中找到Enable 2FA选项并点击;而如果是更新包的话就直接进入自己包的页面然后切换到setting页面下,然后就会出现下面的页面:

2.选择第一个选项就会出来一个二维码的页面,到这里如果是实现过2FA的朋友应该知道怎么做了,关于2FA原理可以参考阮大神的文章http://www.ruanyifeng.com/blog/2017/11/2fa-tutorial.html,有时间和精力的朋友可以尝试自己实现一个,没有这方面条件那用现成的吧——打开手机上的浏览器扫描二维码,然后就会进入一个搜索结果页面,在页面中找到如下的软并下载(有VPN的也可以使用微软或谷歌的Authenticator手机app):

3.打开软件,点击开始然后就会进入添加账号界面,这个软件的二维码功能貌似不可用,所以选择 输入提供的密钥 来添加账号:

4.然后添加账号的界面中,账号就是你的npm账号,而密码并不是你npm账号的登录密码,而是扫描二维码时生成那个密钥——在第二步中手机浏览器扫描二维码时,观察浏览器的url会发现其中有一个查询字符串secret:

5.复制url到密码输入框中,然后删除密钥(screct)值之前的部分:

6.然后添加账号就成功了,app会自动进入显示2FA验证码的页面:

7.返回之前npmjs二维码那个页面,然后输入实时验证码:

8.到这里就开启2FA成功了:

9.接下来你可以在setting页面关闭更新包时需要2FA验证的选项:

10.或者在以后发布/更新包时打开移动端那个2FA验证码生成软件,然后输入验证码就可以顺利发布/更新包了:

以上就是解决发布/更新npm包时2FA验证问题的全部流程,对你有帮助的话,请点个赞吧!:)

猜你喜欢

转载自www.cnblogs.com/corleone113/p/12116334.html