初來乍到,這是我第一次寫博客,注冊博客園也沒多久,以目前的技術累積暫時寫不出什么有質量的技術分享,不過還是想寫點東西,所以就談談我最近遇到的一個坑吧!希望能幫到遇到過這個問題的朋友。如標題所述,這是在發布或更新npm包時可能會遇到的情況——貌似最近npmjs平台強制開發者們要開啟2FA驗證了,解決辦法如下:
- 登錄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驗證問題的全部流程,對你有幫助的話,請點個贊吧!😃