В Express.JS есть встроенный middleware для авторизации. Если очень хочется заблокировать доступ к приложению — достаточно всего лишь добавить одну строчку в сетап express-приложения:
Так же middleware поддерживает альтернативный вариант — с коллбэком:
А если нужно ограничить доступ только к определенным url'ам — middleware можно использовать не глобально, а только в рамках роутера. То есть так:
Если не забираться под капот — на этом можно и закончить. Тех же, кто на диаграмме Венна находится между кругами «Мне интересно, что внутри» и «Я не знаю как работает basic авторизация apache», приглашаю под кат.
app.use(express.basicAuth('username', 'password'));
Так же middleware поддерживает альтернативный вариант — с коллбэком:
app.use(express.basicAuth(function(user, pass, next) {
var result = (user === 'testUser' && pass === 'testPass');
next(null /* error */, result);
}));
А если нужно ограничить доступ только к определенным url'ам — middleware можно использовать не глобально, а только в рамках роутера. То есть так:
var auth = express.basicAuth(function(user, pass, next) {
var result = (user === 'testUser' && pass === 'testPass');
next(null, result);
});
app.get('/home', auth, function(req, res) {
res.send('Hello World');
});
Если не забираться под капот — на этом можно и закончить. Тех же, кто на диаграмме Венна находится между кругами «Мне интересно, что внутри» и «Я не знаю как работает basic авторизация apache», приглашаю под кат.