@alexandr-web
Программист

Почему выводится 403 код при перезагрузке страницы?

У меня есть middleware, который проверяет вошел ли администратор, и существует ли он:
import jwtDecode from 'jwt-decode';

const Admin = require("../models/Admin");

module.exports = async (req, res, next) => {
  try {
    const auth = req.headers.authorization;

    if (auth) {
      const token = auth.split(' ')[1];

      if (token) {
        const { _doc: { _id } } = jwtDecode(token);
        const candidate = await Admin.findById(_id);

        req.isAdmin = Boolean(candidate);
      } else {
        req.isAdmin = false;
      }
    } else {
      req.isAdmin = false;
    }

    next();
  } catch (err) {
    console.log(err);

    return res.status(500).json({ ok: false, message: "Произошла ошибка сервера" });
  }
}


Это происходит только на одной странице: странице заказов

Когда я перехожу по страницам, включая эту, то все хорошо, но если я перезагружаю эту страницу, то выводится это:
{
 ok: false,
 message: "У вас нет доступа"
}


И middleware показывает, что auth является undefined.

Получение заказов:
router.get("/orders", isAdmin, async (req, res) => {
  try {
    if (req.isAdmin) {
      const orders = await Order.find();

      return res.status(200).json({ ok: true, orders });
    } else {
      return res.status(403).json({ ok: false, message: "У вас нет доступа" });
    }
  } catch (err) {
    console.log(err);

    return res.status(500).json({ ok: false, message: "Произошла ошибка сервера" });
  }
});
  • Вопрос задан
  • 115 просмотров
Пригласить эксперта
Ответы на вопрос 1
ivankprod
@ivankprod
Системный / веб fullstack-разработчик
Покажите код, который отвечает за успешную авторизацию. Похоже, что у Вас не устанавливаются сессии.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы