2017-12-08 6 views
0

Ich entwickle eine Anwendung in Angular 5, die mit meinem Server in NodeJS verbindet.Angular 5/Node Express jede Anfrage verwendet neue Sitzung

ich fügen Sie den Benutzer in der req.session Objekt, nachdem der Benutzer angemeldet ist.

Wenn ich eine zweite Anforderung von Angular 5 app machen etwas aus der API abgerufen werden, wird die req.session nicht enthalten Der Benutzer und die req.sessionId ist immer anders.

Wie kann ich die Sitzung persistent machen?

Hier sind die Tagung und cookieParser Middle:

app.use(cookieParser(config.secret)) 

app.use(session({ 
    secret: config.secret, 
    saveUninitialized: false, 
    resave: false, 
    cookie: { 
     httpOnly: true, 
     secure: false 
    } 
})) 
+0

können Sie den Code anzeigen, wo Sie den Benutzer in die Sitzung versetzen? Verwenden Sie Passpjs als Middleware oder haben Sie eine eigene Implementierung? –

+0

Ich benutze Pass mit lokaler Strategie. –

+0

das ist gut. Passport behandelt normalerweise die Sessions durch die Strategien und durch Serialisierung und Deserialisierung des Benutzers. Aus diesem Grund haben Sie in der Regel mehrere wichtige Konfigurationsdateien, die für das Cookie wichtig sind. Besonders interessant wäre die Passdatei, die Ihrer App gegeben wird (wo der Benutzer serialisiert/deserialisiert wird) und Ihre lokale Strategie, die wahrscheinlich helfen würde, den Fehler zu finden –

Antwort

0

Es war ein CORS verwandtes Thema. Ich musste { withCredentials: true } in den HTTP-Anforderungsoptionen in Angular einschließen.

Verwandte Themen