Ich habe mehrere MEAN-Anwendungen mit Express-Sitzung auf einem einzelnen Server unter mehreren Ports ausgeführt. Wenn ich mich in Anwendung A authentifiziere, wird das festgelegte Token für die andere (Anwendung B) modifiziert. Die authentifizierte Benutzersitzung für Anwendung B wird dann verweigert.Multiple Express mit Express-Session-Anwendungen auf einem Server, verschiedene Ports
Wie konfiguriere ich alle meine Anwendungen, um Tokens unabhängig voneinander zu verifizieren und zu verifizieren? Auf dem lokalen Host beispielsweise wird Anwendung A auf Port 80 und Anwendung B auf Port 90 ausgeführt. Ich möchte, dass ein Benutzer die Anwendung A authentifizieren und verwenden kann, ohne die Anwendung B anderer Benutzer zu unterbrechen. Hier
ist der Code in meiner app.js-Datei, die auf meine Frage relevant sein sollte:
// Connect to database
mongoose.connect(config.mongo.uri, config.mongo.options);
var connection = mongoose.createConnection(config.mongo.uri, config.mongo.options);
var app = express();
// enable CORS
app.use(cors());
// enable cookieParser
app.use(cookieParser());
// enable session
app.use(session({
secret: config.secrets.session,
resave: false,
saveUninitialized: true,
name: 'uniqueSessionId',
store: new MongoStore(
{
mongooseConnection: connection
}
)
}));
In der Dokumentation habe ich versucht, mein Sitzungsobjekt durch einen eindeutigen Namen zu ändern, aber es hat nicht funktioniert. Die beiden Anwendungen stören sich immer noch gegenseitig. – Bibble
Haben Sie die alten Cookies auch entfernt? – robertklep
Ja, ich sehe die neuen Namen der Anwendungs-Cookies und einen Cookie namens "Token". Ich frage mich, ob es einen Token-Cookie für jede Anwendung statt einer geben sollte? Es scheint mir, dass der Token-Cookie derjenige ist, der von jeder Anwendung modifiziert wird. – Bibble