Ich benutze Pass JS, Express und Mungo, um eine API zu machen. Wenn ich es in der gleichen Domäne teste, behält es Sitzung bei und funktioniert gut. Aber im Cross-Bereich schlägt es fehl. Irgendwelche Hinweise wie kann ich die Sitzung in Cross-Domain mit der gleichen Konfiguration pflegen. Folgendes ist der Code
%Vor%Nach Sriharshas Antwort:
Setzen Sie res.header("Access-Control-Allow-Credentials", "true");
Stellen Sie sicher, dass Sie die Anmeldeinformationen im clientseitigen Anruf übergeben. Zum Beispiel für AJAX, füge dies deinem Aufruf hinzu: xhrFields: {withCredentials: true},
Zusätzlich:
Verwenden Sie den Platzhalter für Access-Control-Allow-Origin nicht mit einer Anmeldungsanforderung
Wie im MDN erklärt :
Beim Antworten auf eine Credential-Anfrage muss der Server a angeben Domäne und kann keine Wildcarding verwenden
Ich benutze diese Datei und rufe sie von meinem Hauptmodul mit require("./enable-cors.js")(app);
Erlauben Sie die gemeinsame Nutzung der Anmeldeinformationen, indem Sie den Header Access-Control-Allow-Credentials setzen. (Ich bin nicht sicher, warum Sie in Ihrem Code kommentiert haben)
%Vor%dann übergeben Sie die Anmeldeinformationen von Javascript über das XHR-Objekt.
%Vor%Tags und Links node.js express cors passport.js