Есть ли способ применить jwt на всех моих экспресс-маршрутах с помощью промежуточного программного обеспечения, но вместо того, чтобы выдавать ошибку, если токен отсутствует или недействителен, заполните req.user
с помощью null
Мое текущее решение:
var jwt = require('express-jwt');
var router = express.Router();
router.use(jwt({ secret: 'secret'}));
///////////////////////////////////////////
// This is the piece I would like to avoid
router.use((err, req, res, next) => {
if (err.code === 'UnauthorizedError') {
req.user = null;
}
next();
})
///////////////////////////////////////////
router.use('/products', require('./products/products_router'));
На моем маршруте я хотел бы иметь req.user === null
, если токен отсутствует или недействителен, и правильный req.user
, если токен действителен. В настоящее время без фрагмента кода, который я хочу удалить, мой маршрут не выполняется без токена. И если я использую unless()
, req.user не заполняется даже с действительным токеном