создать промежуточное программное обеспечение окончательной аутентификации для возврата данных и проверки пользователя?

#node.js #mongodb #express #authentication #mongoose

Вопрос:

здравствуйте, я пытаюсь реализовать метод обработки возвращаемых данных в своем экспресс-проекте, я хочу передать данные во всех моих контроллерах конечному промежуточному программному обеспечению, задача которого состоит в том, чтобы проверить, имеет ли пользователь полномочия работать с документом, а затем вернуть данные ,

     req.document = order;
    req.validateFields = [
    order.senderId._id.toString(),
    order.recieverId._id.toString(),
    order.driverId._id.toString(),
  ];
  next();
 

затем я обрабатываю это в своем последнем промежуточном программном обеспечении следующим образом

 app.use(async (req, res, next) => {
  const document = req.document;
  if (!req.validateFields.includes(req.user._id.toString()))
  console.log("not authorized");
  await document.save();
  res.status(200).json({
    document,
  });
});
 

прежде всего, является ли это плохой практикой ? поскольку я сохраняю свой документ после прохождения проверки пользователя , поэтому манипуляции с данными, выполненные в контроллерах, не будут сохранены, если пользователь не прошел проверку подлинности, а затем как обрабатывать другие методы документа, такие как findByIdandDelete, findByIdAndUpdate, которые сразу сохранят документ?

Спасибо.