Я пытаюсь создать сеанс входа в систему с express -сессией в моем проекте angular, в результате чего пользователь останется в системе, даже если страница обновляется. В результате при обновлении страницы сеанс удаляется. Важно сказать, что сеанс не удаляется, когда у меня есть запросы GET / POST с Google Chrome или Почтальоном (не через Angular).
Я попытался решить эту проблему, добавив withCredentials: true
к запросу. Код:
handleUserOnit() {
return this.http.get(`http://localhost:3000/users/oninit`, {
withCredentials: true
});
}
}
И для cors:
app.use(cors({ origin: ["http://localhost:4200"], credentials: true }));
Это код запроса GET:
router.get("/oninit", (req, res) => {
console.log(req.session);
if (req.session.logged) {
console.log(true);
req.status(200).json({ userName: req.session.userEmail });
} else {
console.log(false);
res.status(200).json({ userName: false });
}
});
Таким образом, каждый раз, когда пользователь входит в систему, Сервер добавляет некоторые свойства в сеанс, например req.session.logged == true
, но все эти свойства удаляются при каждом обновлении страницы. Это объект Session:
router.use(
session({
secret: secret,
name: "egsid",
resave: false,
saveUninitialized: true,
cookie: {
path: "/",
maxAge: 1000 * 60 * 60
}
})
);
Существует ли определенный c способ обработки сеансов при использовании Angular? Или я что-то здесь упускаю?