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?