2015-08-13 2 views
1

Я использую cookieSession, чтобы попытаться заполнить объект req.session файлом cookie для пользователей, не прошедших проверку подлинности. Но после прохождения cookieSession ключа, объект req.session никогда не заселен.Экспресс-файл cookieSession не заполняет req.session

var express = require('express'); 
var cookieSession = require('cookie-session'); 
var cookieParser = require('cookie-parser'); 
var app = express(); 
app.use(cookieParser()); 
app.use(cookieSession({keys: ['key1', 'key2']})); 
app.use(bodyParser.json()); 
app.use('/', function (req, res, next) { 
    console.log(req.session); // Empty object 
    console.log(req.cookies); 
    next(); 
}); 

Это express 4. Как еще я могу заполнить объект req.session, или что я делаю неправильно? Большое спасибо.

ответ

2

Пока вы не назначили что-либо объекту сеанса, вы получите пустой объект {}.

Например, как только вы вошли в систему, вы можете установить userId или emailId для объекта сеанса.

req.session.userId = "1"; 

После того, как вы установите значение сессии, вы можете прочитать его с помощью req.session

+0

Если вы хотите отслеживать пользователя, было бы целесообразно назначить печенье к req.session вручную? Или это обычно просто оставить его в файле cookie.session? Кажется интуитивно, как было бы целесообразно сохранить файл cookie в объекте сеанса. –

+0

Анализатор файлов cookie шифрует объект сеанса при записи в файл cookie. Если вы проверяете файл cookie, вы можете найти выражение: sess key, который является зашифрованным ключом для вашего объекта сеанса. Таким образом, внутри сеанса используется тот же файл cookie для достижения этого –

Смежные вопросы