Я создал 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
, представленного на изображении ниже.
Но когда я перерегистрирую пользователя, я разрешено регистрироваться снова, чего не должно быть. он должен войти в систему и отправить статус 403 с сообщением You are already logged in.
что мне здесь не хватает
Пожалуйста, помогите
Мне бы только хотелось, чтобы это работало, как добавить повара ie в мой топор ios req header