Nodejs如何手动将用户序列化为通行证会话?

时间:2018-12-27 16:35:55

标签: node.js passport.js

请考虑以下代码。

router.post("/login", async (req, res, next) => {
  const { errors, isValid } = validateLoginInput(req.body);

  //Form related error
  if (!isValid) {
    return res.status(400).json(errors);
  }
  console.log("Login route is called");
  const { email, password } = req.body;

  //User with provided email check
  try {
    const user = await User.findOne({ "local.email": email });
    console.log("user found  is called");
    if (!user) {
      errors.email = "User not found";
      return res.status(404).json(errors);
    }

    if (user.validPassword(password)) {
      //Everything goes right

      //Manually serializing user  in passport session
      req.session.passport.user = user;

      return res.status(200).send(user);
    } else {
      errors.password = "Password incorrect";
      return res.status(400).json(errors);
    }
  } catch (err) {
    console.log(err);
  }
});

我想将用户序列化为通行证会话。但是这次我没有使用护照策略。由于我没有使用护照策略,因此无法使用done功能。我还有其他方法可以将用户序列化为通行证吗?

0 个答案:

没有答案