express -сессия удаляет сеанс при обновлении с помощью angular - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь создать сеанс входа в систему с 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? Или я что-то здесь упускаю?

...