Como usar duas instâncias de passaporte separadas em um único arquivo de servidor expresso

Eu tenho um aplicativo expresso com uma seção de usuário e administrador. Ambos serão executados em portas diferentes e precisam de autenticação diferente. Criei um app.js em que incluo passaporte e criei um aplicativo e o adminApp. Então eu inicializo o passaporte para os dois da seguinte maneira:

var passport = require('passport');
var app = express();
var adminapp = express();

adminapp.use(passport.initialize());
adminapp.use(passport.session());

app.use(passport.initialize());
app.use(passport.session());

Agora eu tenho rotas definidas para ouvir / auth e manipular autenticação. Como os estou executando em portas diferentes, tenho os mesmos padrões de rotas e ambos estão ouvindo corretamente em suas portas. Então, digamos que eu tenho umuserSessions.js eadminSessions.js arquivos para manipular as rotas de autenticação. Eles estão incluídos da seguinte maneira:

var userSessions = require('./routes/userSessions');
var adminSessions = require('./routes/adminSessions');

app.use('/auth', userSessions);
adminapp.use('/auth', adminSessions); 

Agora, se eu tentar me autenticar no aplicativo de administrador, ele continuará nopassport.serializeUser epassport.deSerializeUser métodos deuserSessions.js.

Como posso lidar com essa situação para que a autenticação de administrador e usuário seja tratada separadamente? Ou estou fazendo isso da maneira errada e a seção de administração deve ser tratada em aplicativos completamente diferentes?

questionAnswers(1)

yourAnswerToTheQuestion