2016-07-16 5 views
0

Я использую экспресс-сеанс, чтобы настроить управление сеансами следующим образом:экспресс-сессии не работают - новый сеанс при каждом запросе

var express = require('express'); 
var session = require('express-session'); 
var app = express(); 
var mongoose = require('mongoose'); 
var MongoStore = require('connect-mongo')(session); 

mongoose.connect('mongodb://localhost/sessionTest'); 


app.listen(3000, function() { 
}); 

app.use(session({ 
    secret: 'justsomestuff', 
    resave: false, 
    saveUninitialized: false, 
    cookie: { } , 
    store: new MongoStore({mongooseConnection: mongoose.connection}) 
})); 

app.get('/first', function (req, res) { 
    console.log('first'); 
    req.session.test = 'Tester'; 
    req.session.save(); 
    console.log(req.sessionID); 
    res.send(req.sessionID); 
}); 

app.get('/second', function (req, res) { 
    console.log('second'); 
    if (req.session) 
      console.log('session exists'); 
    console.log(req.sessionID); 
    console.log(req.session.test); 
    res.send(req.sessionID); 
}); 

Но новый сеанс устанавливается с новым идентификатором сессии каждый раз, когда I позвонить/первый и/или второй с

curl 127.0.0.1:3000/first 
curl 127.0.0.1:3000/second 

Я использую

"connect-mongo": "^1.2.1", 
"express": "~4.13.4", 
"express-session": "^1.14.0", 

Все сеансы в базе данных Монго, а также ,

Кажется, такой прямой вопрос, но я просто не могу понять это.

+0

Не похоже, что вы действительно отправляете файлы cookie сеанса в свои вызовы 'curl'. – robertklep

ответ

0

Вы используете curl. и curl не поддерживают cookie неявно. Вы должны передать значение cookie explicitly via command. а также прочитать файл cookie, когда сервер пытается установить и т. д.

Почему бы вам не попробовать использовать браузер?

или Если вы все еще хотите свернуть, используйте параметры -b и -c как это.

curl -b cookies.txt -c cookies.txt 

-b говорит локон для хранения входящего печенья в cookies.txt и -c говорит локон, чтобы встроить все кук с cookies.txt в этот запрос.

Кроме того, увеличение количества файлов cookie путем добавления поля истечения срока действия.

app.use(session({ 
    secret: 'justsomestuff', 
    resave: false, 
    saveUninitialized: false, 
    expires: new Date(Date.now() + (60 * 60 * 24 * 7 * 1000)), 
    cookie: { } , 
    store: new MongoStore({mongooseConnection: mongoose.connection}) 
})); 
Смежные вопросы