Я думаю, что пользовательский обратный вызов является опцией.Он передается в качестве последнего параметра методу authenticate(strategy, options, callback)
и позволит вам установить желаемое поведение.
Ваш код будет выглядеть следующим образом:
app.get('/get/items', (req, res, next) => {
passport.authenticate('jwt', { session: false }, (err, user, info) => {
if (!user) {
/*
Unauthorized accees.
Handle here the request as u wish
*/
/* Do some custom logic and return your desired result */
return res.status(401).json({ success: false, message: 'Unauthorized access!' });
}
/* User is authorized. Do other stuff here and return your desired result*/
return res.status(200).json({ success: true, message: 'Congratulations!' });
})(req, res, next);
});
В этомНапример, обратите внимание, что authenticate () вызывается из обработчика маршрута, а не используется в качестве промежуточного программного обеспечения маршрута.Это дает обратный вызов для доступа к объектам req и res через замыкание.
Если аутентификация не удалась, для пользователя будет установлено значение false.Если возникла исключительная ситуация, будет установлена ошибка.Будет передан необязательный информационный аргумент, содержащий дополнительные сведения, предоставленные обратным вызовом проверки стратегии.
Обратный вызов может использовать предоставленные аргументы для обработки результата аутентификации по желанию.Обратите внимание, что при использовании пользовательского обратного вызова приложение становится ответственным за установление сеанса (путем вызова req.login ()) и отправки ответа.
Источник