У меня есть API, и я использую passport.js. При входе в систему я даю им JWT и устанавливаю заголовок по умолчанию для axios в токен.
axios.defaults.headers.common["Authorization"] = token;
Все работает, когда я отправляю запрос на Postman. Но в моем приложении React не работает (кроме моего тестового маршрута по умолчанию)
router.get("/test", (req, res) => res.json({ msg: "User works" }));
Я добавил cors в свое экспресс-приложение. Это не сработало.
это мой бэкэнд-маршрут
router.get(
"/getuserclass",
passport.authenticate("jwt", { session: false }),
(req, res) => {
User.findOne({ _id: req.user.id })
.populate("classes", { _id: 1, name: 1 })
.then(user => res.json(user))
.catch(() => {
return res.status(403).json({ msg: "Not found" });
});
}
);
и это мой запрос на получение
axios
.get("/api/users/getuserclass", {
withCredentials: true,
crossdomain: true
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.log(error.response);
});
в приложении React выдает эту ошибку
401 unauthorized