即使使用正确的 usr/pwd (express/passport-local) 也会被重定向

getting redirected even with correct usr/pwd (express/passport-local)

我正在使用 passport-local 进行身份验证。从登录页面开始时,如果 usr/pwd 正确,我会重定向到我应该去的地方,如果不正确,我会重定向回登录页面,但是如果将身份验证要求添加到页面,我总是会被重定向到登录页面。

app.js

var express = require('express');
var passport = require('passport');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var authRouter = require('./routes/auth');
var listsRouter = require('./routes/lists');

var app = express();

require('./boot/auth')();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(passport.initialize());
app.use(passport.authenticate('session'));

app.use('/', indexRouter);
app.use('/', authRouter);
app.use('/lists', listsRouter);

module.exports = app;

boot/auth.js

var passport = require('passport');
var Strategy = require('passport-local');

module.exports = function () {
    passport.use(new Strategy(function (username, password, cb) {
        if (checkUsrPwd()) {
            var user = {
                id: '1',
                username: 'my_user',
                displayName: 'user name'
            };
            return cb(null, user);
        } else {
            return cb(null, false, {
                message: 'Incorrect username or password.'
            });
        }
    }));

    passport.serializeUser(function (user, cb) {
        process.nextTick(function () {
            cb(null, {
                id: user.id,
                username: user.username
            });
        });
    });

    passport.deserializeUser(function (user, cb) {
        process.nextTick(function () {
            return cb(null, user);
        });
    });

};

routes/lists.js

const express = require('express');
const ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
const router = express.Router();

router.get("/list", ensureLoggedIn('/'), (req, res) => {
  [...]
      res.contentType = 'application/json';
      res.render('list', {
        userData: items
      });
    };
  });
});

我错过了什么?

我在 app.js

中漏掉了一行
app.use(require('express-session')({ secret: 'keyboard cat', resave: false, saveUninitialized: false }));

添加后一切正常。