экспресс-сессия не сохраняла сессию

Здесь я использовал экспресс-сеанс для хранения пользовательского сеанса, но обнаружил, что req.session.user всегда не определен.

Забавно, что когда я использовал почтальон плагина Chrome для посещения, проблем не было.

так как это исправить?

var session = require('express-session');
app.use(session({
    resave: false,
    secret: 'key',
    saveUninitialized: 
    originalMaxAge: 100000,
    cookie: {
        secure: true
    }
}));

app.use(function(req, res, next) {
    console.log(req.session.user);
    if (!req.session.user)
        req.session.user = {'zh':'123'};
    next();
});

person zhoushx3    schedule 26.12.2015    source источник


Ответы (3)


Попробуй это,

app.use(session({
    resave: false,
    secret: 'key',
    saveUninitialized: true,
    cookie: {
        originalMaxAge: 100000,
        secure: true
    }
}));

Я никогда не использовал originalMaxAge, но я предполагаю, что он имеет ту же функцию, что и maxAge для cookie.

Ссылка: https://github.com/expressjs/session

person tat757    schedule 20.07.2016

Вы не должны устанавливать cookie:

app.use(session({
    resave: false,
    secret: 'key',
    originalMaxAge: 100000
}));

Я запускал на своем компьютере, результат - то, что вы хотите.

person Seven    schedule 10.05.2017

Попробуй это,

app.use(session({
   secret: "your-secret",
   resave: true,
   saveUninitialized: true,
   cookie: {
      maxAge: 1000000,
      secure: true
   }
})

вместо того, чтобы использовать Original Max Age, вы можете использовать maxAge, и вы не передали никакого значения для saveUninitialized, и это необходимый параметр.

person Daksh Miglani    schedule 14.08.2017