Error: Cannot read property 'user' of null when calling passport.serializeUser

Error: Cannot read property 'user' of null when calling passport.serializeUser

所以我的 passport.js 文件中有下一个:

const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
var connection = require('./database');
const User = require('./models/user');

const verifyCallback = (username, password, done) => {

  User.findUser(username).then((user) => {
    if(!user)
      return done(null, false);

    const isValid = User.validPassword(password, user[0].password).then((isValid)=>{

      if(isValid)
        return done(null, user);
      else
        return done(null, false);

    })
  })
  .catch((err) =>{
    done(err);
  });
};

const strategy = new LocalStrategy(verifyCallback);

passport.use(strategy);

passport.serializeUser((user, done) => {
  console.log(user + "\n" + user.id);
  done(null. user.id);
});

passport.deserializeUser((userId, done) => {
  User.findById(userId)
    .then((user) =>{
        done(null, user)
    })
    .catch(err => done(err));
})

一切正常,直到 passport.serializeUser 函数 return 错误 Cannot read property 'user' of null 我不知道 user 参数来自哪里,我正在学习教程,但那个人没有解释。我应该如何解决该错误? 这是路线:

var express = require('express');
var router = express.Router();
var passport = require('passport');
const controller = require('../controllers/LoginController');

router.get('/', controller.getLoginPage);
router.post('/', passport.authenticate('local', {failureRedirect: '/', successRedirect: '/register'}),controller.login);

module.exports = router;

按照你写的代码done(null. user.id);,应该是done(null, user.id);

您使用了 . 而不是 ,