Я использую MEAN стек.Он не позволит мне получить доступ к домашней странице, когда я посещаю путь на угловом порту 4200, но когда я посещаю путь на порту 3000 с сервера, он теперь дает мне доступ к домашней странице.
Back end
// Middleware
const redirectLogin = ((req, res, next) => {
if (!req.session.user) {
res.status(200).json({ loggedIn: false });
}
else
next();
});
// Route
router.route("/home").get(redirectLogin, (req, res) => {
// code
});
// Where session is created if user logs in successfully
router.route("/users/login").post((req, res) => {
// more code here
res.status(200).json({ loggedIn: true });
req.session.regenerate((err) => {
req.session.user = user.id; // User holds session
req.session.save(() => {}); // Session is now saved in db
});
Внешний интерфейс, из моих служб
homePage() {
return this.http.get(`${this.uri}/home`, { withCredentials: true }).subscribe((data) => {
if (data["loggedIn"] === false)
this.router.navigate(["/users/login"]);
else
this.router.navigate(["/home"]);
});
}
Еще больше меня смущает то, что когда я захожу в путь / блог на порту 4200, он все равно сохраняет сеанс в БД.Но это все равно не позволит мне посетить домашнюю страницу.И когда я захожу в путь / блог на порту 3000, он сохраняет сеанс, а затем дает доступ к домашней странице.
router.route("/blog").get((req, res) => {
req.session.user = 1; // SESSION
});
Edit
Кажется, Cors - это проблема, которую вы, ребята, поднимаете, но у меня действительно есть cors, установленные в основном файле js.Есть ли что-то еще, что мне нужно добавить в cors?
app.use(cors({
origin: "http://localhost:4200",
credentials: true
}));