2016-01-28 18 views
6

Tôi có đoạn mã sau:req.session ở tốc phiên không kiên trì

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

Và tải lại trang, tôi chỉ tiếp tục nhận được số lần xem 0 tin nhắn.

Kiểm tra giao diện điều khiển, đây là sản phẩm tất cả các thời gian:

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

Vì vậy, nó dường như không được tiết kiệm ở tất cả

+6

Bạn có đang sử dụng kết nối an toàn không? aka 'https: //', tôi nghi ngờ bạn không, nhưng bạn đã đặt cờ 'secure' thành true bên trong' express.session (...) ', có nghĩa là bạn sẽ không bao giờ có thể truy cập cookie (vì vậy các phiên sẽ không hoạt động chính xác). –

Trả lời

13

Thay đổi cookie: { secure: true }-cookie: { secure: false }

sử dụng an toàn cờ có nghĩa là cookie sẽ chỉ được đặt trên Https.

+0

Cảm ơn bạn đã sao chép nhận xét của tôi vào câu trả lời. –

+1

Tôi không thấy bình luận của bạn –

+0

Vâng, đó là lý do. Cám ơn hai bạn! – RobKohr

Các vấn đề liên quan