express сессия реагирует отправить повар ie обратно для подтверждения пользователя - PullRequest
0 голосов
/ 29 марта 2020

Я создал express сессионный повар ie для входа в систему. Он работает нормально с почтальоном, я получаю желаемые результаты, но когда я использую его с реакцией для отправки одного и того же запроса, мне разрешается выполнять одно и то же действие дважды, где, как если бы я использовал почтальона, если я создал пользователя, я не смог бы создать один, потому что я вошел в систему.

вот мой код

router.post("/", guestOnly, async (req, res) => {
  try {
    const user = await User.create(req.body);
    login(req, user.id);
    res.status(200).json(successResponse());
  } catch (error) {
    return res.status(200).json(errResponse([error]));
  }
});

export const guestOnly = (req, res, next) => {
  console.log("middleware running");
  if (isLoggedIn(req)) {
    console.log("user logged in");
    const errors = ["You are already logged in."];
    return res.status(403).json(errResponse(errors, 403));
  }
  console.log("user is not logged in", req.headers.cookie);

  next();
};

export const isLoggedIn = req => !!req.session.userId;

export const login = (req, userId) => {
  req.session.userId = userId;
};

export const logout = (req, res) => {
  return new Promise((resolve, reject) => {
    return req.session.destroy(err => {
      if (err) reject(err);
      res.clearCookie(SESSION_NAME);
      resolve();
    });
  });
};

здесь топор ios фрагменты кода

const axios = axioss.create({
  baseURL: BASE_URL_API,
  headers: {
    "Content-Type": "application/json",
    withCredentials: true
  }
});

const response = await axios.post("users", formData);

Вот скриншот ответа в в браузере вы можете увидеть повара ie и withCredientials: true, представленного на изображении ниже.

enter image description here

Но когда я перерегистрирую пользователя, я разрешено регистрироваться снова, чего не должно быть. он должен войти в систему и отправить статус 403 с сообщением You are already logged in. что мне здесь не хватает

Пожалуйста, помогите

Мне бы только хотелось, чтобы это работало, как добавить повара ie в мой топор ios req header

...