Это мое первое экспресс-приложение. Я пытаюсь реализовать аутентификацию для некоторых маршрутов. В идеале, если пользователи не аутентифицированы, они будут перенаправлены на домашнюю страницу. Итак, я написал это промежуточное ПО:
var jwt = require('express-jwt');
app.get('/protected',
jwt({secret: 'shhhhhhared-secret'}), //express-jwt middleware
function(req, res, next) { //redirection middleware
if(!req.user._id){
console.log('authentication failed')
res.redirect('/home')
}else{
next()
};
});
Если пользователь авторизован, код работает. Однако, если пользователь не вошел в систему, браузер просто покажет несанкционированную ошибку 401. Перенаправления нет. Процесс завершился неудачно на промежуточном программном обеспечении express-jwt и не продолжился на моем промежуточном программном обеспечении перенаправления.
Есть ли какая-то конфигурация, которую мне нужно установить в функции jwt? Или есть способ установить глобальное перенаправление, если встречается 401.