So verwenden Sie zwei separate Passport-Instanzen in einer einzelnen Express-Serverdatei

Ich habe eine Express-App mit einem Benutzer- und Administratorbereich. Beide werden auf unterschiedlichen Ports ausgeführt und benötigen unterschiedliche Authentifizierung. Ich habe eine app.js erstellt, in der ich den Pass und eine App sowie die adminApp einfüge. Dann initialisiere ich den Pass für beide wie folgt:

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());

Nun habe ich Routen definiert, um / auth abzuhören und die Authentifizierung zu handhaben. Da ich diese auf verschiedenen Ports ausführe, habe ich die gleichen Muster für Routen und beide lauschen korrekt auf ihren Ports. Nehmen wir also an, ich habe einuserSessions.js undadminSessions.js -Dateien für die Authentifizierungsrouten. Diese sind wie folgt enthalten:

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

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

Jetzt, wenn ich versuche, mich in der Admin-App zu authentifizieren, wechselt das Programm immer noch zumpassport.serializeUser undpassport.deSerializeUser Methoden vonuserSessions.js.

Wie kann ich mit dieser Situation umgehen, sodass Administrator- und Benutzerauthentifizierung getrennt behandelt werden? Oder mache ich das falsch und der Admin-Bereich sollte in einer völlig anderen App gehandhabt werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage