Я пытаюсь добавить аутентификации промежуточного уровня, которые должны предотвратить доступ к части сайта:порядка управления экспресса/подключение промежуточного
app = express()
.get('/api/test', function (req, res) { ... })
.use('/api', function (req, res, next) {
if (req.param('key')) {
next();
} else {
res.json(401, {
message : 'Authentication failed'
});
res.end();
}
})
.get('/api/data', function (req, res) { ... });
И мое ожидание, что вызовы/API/данные будут первый обработанном с помощью проверки ключа, а затем (если он будет успешным) обработчиком/api/data. Но вместо этого запрос сначала обрабатывается «/ api/data».
Кажется, что checker работает для/api/something_that_does_not_exist, но не для/api/something_that_exist.
Возможно, я пропустил что-то в документации для экспресс-связи?
Обновление Я проследил это до того, что первый вызов get/post инициализирует промежуточное ПО маршрутизатора, поэтому он выполняется первым.
Он должен работать, и это происходит, когда я проверяю его (с помощью Express 3.1.1). – robertklep
Спасибо. Пример кода - это отрывок из фактического кода и отсутствующий важный фрагмент, который я добавил в некоторые маршруты. _before_ this specific .use –
А я просто заметил, что вы уже выяснили, что это промежуточное ПО маршрутизатора, на которое я тоже ответил :) Если вы «Все в порядке, я просто оставлю ответ« как есть », может помочь кому-то еще в будущем. – robertklep