Express сессия становится неопределенной через несколько секунд - PullRequest
0 голосов
/ 22 апреля 2020

Я использую express -сессию 1.17.1 в nodejs проекте. Я могу правильно сохранить сеанс, но через несколько секунд сеанс становится неопределенным.

вот код сервера:

...
 self.app.use(session({
            secret: conf.SERVER.SECRET_WORD,
            resave: false,
            saveUninitialized: false,
            expires: new Date(Date.now() + 36000000)
          }));

server = http.createServer(self.app);
...

вот код для сохранения сеанса, когда будет выполнен вход в систему:

...
 if(!err) {
                user.password="";
                req.session.user=user._id.toString();
                req.session.role=user.role;
                res.status(200).send(user);
              } else {
                errorHandler.processError(err, res, log);
              }
...

вот код, чтобы проверить, является ли сессия нулевой:

...
 if(req.session.user==null){
      errorHandler.processError(res.__("GENERAL.SESSION_NULL"), res, null, 401);
    }else{
// do something.
...

Когда я запускаю сервер и делаю первый запрос, все работает нормально, и сессия не нулевая, она имеет пользователь сохранен. Но через несколько секунд, если я выполню тот же запрос, сессия становится неопределенной. Увеличение срока действия параметра не изменяет поведение. Вы знаете, что происходит?

Спасибо!

1 Ответ

0 голосов
/ 22 апреля 2020

хорошо, я видел, что происходит. express -сессия не поддерживает кластерный сервер узлов (я не знал этого), и мой сервер кластеризован. Поэтому я создаю сеанс, выполняя вход в поток 1 для instace, но если другой запрос go к потоку 2, здесь сеанс не определен. Я изменил его, чтобы использовать connect-mon go и сохранить сеанс в mongodb. Спасибо.

...