らくらくパス付きページの代表格といえば、ベーシック認証。
全体に適用するだけなら、以前書いた記事の通りです。
shuzo-kino.hateblo.jp
今回は特定のURLだけベーシック認証ページを実装してみます。
実際のところ
導入
いつもの通り、npm。
$ npm i --save basic-auth-connect
ここでいう"connect"とは、expressのバックエンドまわりをやってくれる子です。
railsでいう、rackみたいなものなのだそうです。
スクリプト
通常のアプリに加えて、admin用のページを用意する場合を考えます。
メインのものにbasic-auth-connectを入れると全部対象になってしまうので
Router機能を使って分離します。
Routerについては、後日別途記事にします。
var express = require('express'); var app = express(); app.set('view engine', 'jade'); // 中略 // basicAuth for Admin Apps var basicAuth = require('basic-auth-connect'); var adminApp = express.Router(); adminApp.use(basicAuth('user', 'passw0rD')); adminApp.get('/admin', function(req, res) { res.render('index', { title: 'Our Admin Apps!', message: "Welcome to the admin page"}); }); app.use('/', adminApp); // Wake up the app app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
adminApp以外のパスに接続しても、認証画面は出ません。
アプリを起動し/adminにアクセスすると、見慣れたベーシック認証の画面の後、"Welcome to the admin page"と出るはずです。
まぁ、これだと万全では無いので、外に出すツールなら色々細工はした方が良いでしょう。