У меня есть 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: "Произошла ошибка сервера" });
}
});