express.js + passport.jsで1分でbasic認証を実装する
passport.jsを用いると、expressでbasic認証が簡単にできます。
準備
$ npm i express passport passport-http
コード
以下のファイルをindex.jsとして保存します。
const express = require('express'); const passport = require('passport'); const passportHttp = require('passport-http'); passport.use(new passportHttp.BasicStrategy( function(username, password, done) { if (username === 'correct-username' && password == 'correct-password') { return done(null, true); } else { return done(null, false); } } )); const app = express(); app.get('/', passport.authenticate('basic', { session: false }), (req, res) => { res.sendStatus(200); }); app.listen(3000);
確認
サーバーを立ち上げます。
$ node index.js
curlで動作を確かめてみます。
$ curl -u correct-username:correct-password http://localhost:3000 OK $ curl http://localhost:3000 Unauthorized
正しく動いていることがわかります。