Node.js + Express.jsのWebサーバでBasic認証を使いたい時

以前、Raspberry Piで学習リモンコンサーバを作ってみました。

Node.js + ExpressでWebサーバを作成しましたが、何のセキュリティもかけておりませんので、IPアドレスさえわかれば、誰でもリモコンを操作できてしまいます。

最低限のセキュリティとして、ユーザー名とパスワードを入力しないと画面が表示されないように、少し改造したいと思います。

ログイン画面の作成等が不要で、いちばん手間がかからずに済む、Basic認証を使った方法を記録しておこうと思います。

※自宅LANでの使用を想定しております。インターネットに直接公開するWebサーバの場合、パスワードの盗聴が容易なBasic認証ではなく、他のより安全な認証方法をご使用ください。


Node.js + Express.jsのBasic認証設定手順

Node.jsのバージョンは10.3.0、Exprss.jsのバージョンは4.16.0を使用して確認しました。

  1. npmコマンドでbasic-auth-connectをインストールしました。
    npm install basic-auth-connect --save
  2. app.jsファイルを変更し、次の行を追加しました。
    var basicAuth = require('basic-auth-connect');
    app.use(basicAuth(
      'admin', 'piyopiyo'
    ))

以上で設定完了です。

この場合、ユーザー名はadmin、パスワードはpiyopiyoを入力しないと画面が表示されなくなります。

basicAuth()関数の引数にコールバック関数を渡せば、複数のユーザーを作成したり、データベースやファイルからユーザー名を取得して認証することもできそうです。

詳細はドキュメントを御覧ください。

スポンサーリンク

フォローする

スポンサーリンク