/ / Express router crea una nueva sesión no deseada - node.js, express, passport.js, passport-local

Express Router crea una nueva sesión que no se desea: node.js, express, passport.js, passport-local

Estoy haciendo un proyecto de reacción usando Express y pasaporte local para la parte de autenticación basada en este tutorial: https://scotch.io/tutorials/easy-node-authentication-setup-and-local

La autentificación funciona muy bien, he añadido elExpress Router para definir mis rutas para mi api, pero cuando llamo por ejemplo "/ api / myroute" el router de Express crea otra sesión y pierdo el usuario, por lo que mi función isLoggedIn bloquea la llamada de mis controladores porque no hay ningún usuario en esta nueva sesión. Entonces mi pregunta es: ¿Por qué el enrutador vuelve a crear una sesión? ¿Qué está mal en mi configuración? Aquí está mi código:

//server.js
var path = require("path");
var webpack = require("webpack");
var webpackDevMiddleware = require("webpack-dev-middleware");
var webpackHotMiddleware = require("webpack-hot-middleware");
var config = require("./webpack.config");

var express  = require("express");
var app      = express();
var port     = process.env.PORT || 8080;
var mongoose = require("mongoose");
var passport = require("passport");
var flash    = require("connect-flash");

var morgan       = require("morgan");
var cookieParser = require("cookie-parser");
var bodyParser   = require("body-parser");
var session      = require("express-session");

var configDB = require("./config/database.js");

var router = express.Router();

// configuration ===============================================================
mongoose.connect(configDB.url); // connect to our database

require("./config/passport")(passport); // pass passport for configuration

// set up our express application
app.use(morgan("dev")); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser()); // get information from html forms

app.set("view engine", "ejs"); // set up ejs for templating

// required for passport
app.use(session({ secret: "secret" })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session


var compiler = webpack(config);
app.use(webpackDevMiddleware(compiler, { noInfo: true, publicPath: config.output.publicPath }));
app.use(webpackHotMiddleware(compiler));
app.use("/plugins/bootstrap", express.static(path.join(__dirname, "./plugins/bootstrap")));
app.use("/plugins/jquery", express.static(path.join(__dirname, "./plugins/jquery")));
app.use("/plugins/font-awesome", express.static(path.join(__dirname, "./plugins/font-awesome")));


// all of our routes will be prefixed with /api
app.use("/api", router);

// routes ======================================================================
require("./api/routes.js")(app, passport,router); // load our routes and pass in our app and fully configured passport


// launch ======================================================================
app.listen(port, function(error) {
if (error) {
console.error(error)
} else {
console.info("==>