2016-01-28 12 views
6

persistierenden Ich habe den folgenden Code:req.session in Express-Sitzung nicht

var express = require('express'); 
var cookieParser = require('cookie-parser'); 
var http = require('http') 
var app = express(); 
app.use(cookieParser()); 
var session = require('express-session'); 
app.use(session({ 
    resave: false, 
    saveUninitialized: true, 
    secret: 'sdlfjljrowuroweu', 
    cookie: { secure: true } 
})); 

app.get('/test', test); 
function test(req, res) { 
    var sess = req.session; 
    console.log('before', sess); 
    if (sess.views) { 
     sess.views++ 
     req.session.save(); 
     res.setHeader('Content-Type', 'text/html') 
     res.write('<p>views: ' + sess.views + '</p>') 
     res.write('<p>expires in: ' + (sess.cookie.maxAge/1000) + 's</p>') 
     res.end(); 
    } else { 
     sess.views = 1; 
     req.session.save(); 
     res.end('welcome to the session demo. refresh!') 
    } 
    console.log('after', sess); 
    return; 
} 

var server = http.createServer(app); 
server.listen(8181); 

Und die Seite neu zu laden, halte ich nur die Anzahl Blick bekommen 0 Nachricht.

die Konsole prüfen, ist dies die Ausgabe jedes Mal: ​​

before { cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true, 
    secure: true } } 
after { cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true, 
    secure: true }, 
    views: 1 } 

es scheint also nicht cookie: { secure: true }-cookie: { secure: false }

mit sicheren Flagge an allen

+6

Verwenden Sie eine sichere Verbindung? aka 'https: //', ich vermute, dass du es nicht bist, aber du hast das 'secure'-Flag in deiner 'express.session (...)' auf true gesetzt, was bedeutet, dass du nie darauf zugreifen kannst der Cookie (also Sitzungen werden nicht korrekt funktionieren). –

Antwort

13

ändern Speichern werden bedeutet, dass der Cookie nur auf HTTPs gesetzt wird.

+0

Danke für das Kopieren meines Kommentars in eine Antwort. –

+1

Ich habe Ihren Kommentar nicht gesehen –

+0

Ja, das war der Grund. Danke euch beiden! – RobKohr

Verwandte Themen