Это мое первое экспресс-приложение. Я пытаюсь реализовать аутентификацию для некоторых маршрутов. В идеале, если пользователи не аутентифицированы, они будут перенаправлены на главную страницу. Поэтому я написал это промежуточное программное обеспечение:Как перенаправить пользователя, не прошедшего проверку подлинности, используя express-jwt
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.
Этот код должен размещаться перед промежуточным программным обеспечением аутентификации или после? – Sydney
Это промежуточное программное обеспечение должно быть последним. Не забывайте обращаться с другими ошибками, если иначе. Вы можете отправить sms или электронную почту с описанием ошибки или просто сохранить их в базе данных. –