Управление сеансом пользователя с использованием пн goose в nodejs - PullRequest
0 голосов
/ 10 июля 2020

при запуске маршрута входа в систему токен генерируется успешно, но выдает ошибку, когда функция UserSession.create запускается для сохранения сеанса в базе данных и отображает сообщение об успешном завершении, а ошибка:

throw er; // Необработанное событие «ошибка» ^

Ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту

  User.findOne({
    $or: [{ user_name: req.body.user_name }, { email: req.body.email }],
  })
    .then((user) => {
      if (user) {
        if (bcrypt.compareSync(req.body.password, user.password)) {
          const payload = {
            _id: user._id,
            user_name: user.user_name,
            first_name: user.first_name,
            last_name: user.last_name,
            email: user.email,
          };
          payload.userId = user._id;
          UserSession.create(payload, (err, doc) => {
            if (err) {
              console.log(err);
              return res.send({
                success: false,
                message: "Error :  server Error",
              });
            }
            return res.send({
              success: true,
              message: "Valid Sign In",
              token: doc._id,
            });
          });

          let token = jwt.sign(payload, process.env.SECRET_KEY, {
            expiresIn: 1440,
          });
          res.send(token);
        } else {
          res.json({ error: "Invalid Password" });
        }
      } else {
        res.json({ error: "User does not exist" });
      }
    })
    .catch((err) => {
      res.send("error: " + err);
    });
});
...