npm で2要素認証を有効にする

前々から通知は来ていたのですが、 npm で2要素認証を有効にすることにしました。

大した話ではないですが、検索しても記事がヒットしなかった上に公式ドキュメントも自分が目の当たりにした画面と微妙に項目が変わっていた(といっても順番が入れ替わっていただけですが)のでメモしておこうかと。

手順

まずは npm にログイン。なお、この時点でも現在はワンタイムパスワードを求められるので、アカウント登録時に使用したメールを確認してワンタイムパスワードを入力してログインすること。

npm アカウントのメニューから「Account」を選択
npm アカウントのメニューから「Account」を選択

アカンとのメニューから「Account」を選択。

npm アカウントの管理画面から Enable 2FA をクリック
npm アカウントの管理画面から Enable 2FA をクリック

アカウントの管理画面から 「Enable 2FA」 をクリックして次へ。

npm 「Authorization and Publishing」を選択
npm 「Authorization and Publishing」を選択

一番厳重な「Authorization and Publishing」のラジオボタンを選択しておきます。これでログイン時のみだけではなくパッケージ公開時も2要素認証が求められるようになります。

npm 2要素認証の秘密鍵をQRコードから読み込む
npm 2要素認証の秘密鍵をQRコードから読み込む

秘密鍵をQRコードから読み込みます。

npm 2要素認証のリカバリーコードを控える
npm 2要素認証のリカバリーコードを控える

リカバリーコードを控えます。これでOK。

パッケージ公開の際の2要素認証

これでパッケージ公開をしてみます。

今回はfacebook埋め込み に対して埋め込みの成否により代替リンクを生成する JS パッケージで試します。

> npm login
npm notice Log in on https://registry.npmjs.org/
Username: YOURNPMUSERNAME
Password:
Email: (this IS public) your-mail-address@example.com
npm notice Please use the one-time password (OTP) from your authenticator application
Enter one-time password: XXXXXX
Logged in as arm-band on https://registry.npmjs.org/.
> 

one-time password で訊いてきましたね。OKです。

> npm pack
npm notice 
npm notice 📦  cajonfb@0.0.1
npm notice === Tarball Contents ===
npm notice 1.2kB __tests__/cajohfb.alto.test.js
npm notice 605B  __tests__/cajohfb.constructor.test.js
npm notice 866B  __tests__/cajohfb.corrente.test.js
npm notice 700B  __tests__/cajohfb.fantasma.test.js
npm notice 1.6kB __tests__/cajohfb.feroce.test.js
npm notice 590B  __tests__/cajohfb.mezzosoprano.test.js
npm notice 464B  __tests__/cajohfb.piano.test.js
npm notice 912B  __tests__/cajohfb.polonaise.test.js
npm notice 627B  __tests__/cajohfb.undeux.test.js
npm notice 401B  .github/workflows/ci_unittest.yml
npm notice 1.0kB LICENSE
npm notice 2.4kB docs/index.html
npm notice 170B  docs/js/app.js
npm notice 5.8kB docs/js/cajon.js
npm notice 86B   jest.config.js
npm notice 385B  package.json
npm notice 1.6kB readme.md
npm notice 993B  sample/alto/assert.js
npm notice 2.9kB sample/corrente/assert.js
npm notice 1.4kB sample/corrente/exception.js
npm notice 1.4kB sample/fantasma/assert.js
npm notice 1.4kB sample/fantasma/exception.js
npm notice 2.9kB sample/feroce/assert.js
npm notice 1.4kB sample/mezzosoprano/assert.js
npm notice 1.4kB sample/mezzosoprano/exception.js
npm notice 2.9kB sample/piano/assert.js
npm notice 2.9kB sample/polonaise/assert.js
npm notice 2.9kB sample/undeux/assert.js
npm notice 5.8kB src/cajon_fb.js
npm notice === Tarball Details ===
npm notice name:          cajonfb
npm notice version:       0.0.1
npm notice filename:      cajonfb-0.0.1.tgz
npm notice package size:  7.3 kB
npm notice unpacked size: 49.3 kB
npm notice shasum:        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
npm notice integrity:     sha512-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
npm notice total files:   30
npm notice
cajonfb-0.0.1.tgz

npm pack で試してから

> npm publish
npm notice 
npm notice 📦  cajonfb@0.0.1
npm notice === Tarball Contents ===
npm notice 1.2kB __tests__/cajohfb.alto.test.js
npm notice 605B  __tests__/cajohfb.constructor.test.js
npm notice 866B  __tests__/cajohfb.corrente.test.js
npm notice 700B  __tests__/cajohfb.fantasma.test.js
npm notice 1.6kB __tests__/cajohfb.feroce.test.js
npm notice 590B  __tests__/cajohfb.mezzosoprano.test.js
npm notice 464B  __tests__/cajohfb.piano.test.js
npm notice 912B  __tests__/cajohfb.polonaise.test.js
npm notice 627B  __tests__/cajohfb.undeux.test.js
npm notice 401B  .github/workflows/ci_unittest.yml
npm notice 1.0kB LICENSE
npm notice 2.4kB docs/index.html
npm notice 170B  docs/js/app.js
npm notice 5.8kB docs/js/cajon.js
npm notice 86B   jest.config.js
npm notice 385B  package.json
npm notice 1.6kB readme.md
npm notice 993B  sample/alto/assert.js
npm notice 2.9kB sample/corrente/assert.js
npm notice 1.4kB sample/corrente/exception.js
npm notice 1.4kB sample/fantasma/assert.js
npm notice 1.4kB sample/fantasma/exception.js
npm notice 2.9kB sample/feroce/assert.js
npm notice 1.4kB sample/mezzosoprano/assert.js
npm notice 1.4kB sample/mezzosoprano/exception.js
npm notice 2.9kB sample/piano/assert.js
npm notice 2.9kB sample/polonaise/assert.js
npm notice 1.7kB sample/polonaise/exception.js
npm notice 2.9kB sample/undeux/assert.js
npm notice 5.8kB src/cajon_fb.js
npm notice === Tarball Details ===
npm notice name:          cajonfb
npm notice version:       0.0.1
npm notice filename:      cajonfb-0.0.1.tgz
npm notice package size:  15.3 kB
npm notice unpacked size: 56.6 kB
npm notice shasum:        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
npm notice integrity:     sha512-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
npm notice total files:   30
npm notice
npm notice Publishing to https://registry.npmjs.org/
This operation requires a one-time password.
Enter OTP: XXXXXX
+ cajonfb@0.0.1
> 

公開。最後に Enter OTP で訊かれているので意図通りです。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。