У меня есть маршрут удаления, который имеет 2 функции промежуточного программного обеспечения Authcontroller.protect и authcontroller.restrictTo («admin,« lead-guide ») имеет надлежащую «роль» для выполнения этой задачи, и если они этого не делают, express предполагается не отправлять 403. Я вижу, что express фактически никогда не отправляет ответ. Он входит в оператор if (я вижу консоль успешно печатает fialure), а затем просто пропускает отправку ответа.
exports.restrictTo = (...roles) => {
return (req, res, next) => {
console.log(req.user.role);
if (!roles.includes(req.user.role)) {
console.log("failure");
return res.status(403).json({
status: fail,
message: "you do not have permission to perform this action"
});
console.log(req, res);
}
next();
};
};