Я создаю промежуточное ПО для admin
пользователей:
let admin_middleware = (req, res, next) => {
let token = req.header('x-auth');
User.findByToken(token).then((user) => {
if(!user || user._doc.user_type !== user_roles.admin)
return Promise.reject();
req.user = user;
req.token = token;
next();
}).catch((e) => {
res.status(401).send();
})
};
Вопрос вокруг этой строки кода:
if(!user || user._doc.user_type !== user_roles.admin)
return Promise.reject();
При использовании admin_middleware
в server.js
я ловлю отклоненное обещание:
.catch(e => {
res.status(401).send();
})
, что означает, что для пользователя not authorized
и `доступ запрещен, я возвращаю код состояния 401.
Я хотел бы вернуть 403 в одном случае и 401 в другом. Каким было бы решение?
Спасибо!