На Почтальоне, когда я посылаю запрос на получение в мой бэкэнд, Api я могу получить ответ, но в моем приложении я получаю только 401 несанкционированный - PullRequest
1 голос
/ 14 апреля 2019

У меня есть 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
...