У меня немного кошмар с настройкой пользовательских сеансов в NodeJS. Я искал жизнь из нее и прочитал здесь целый ряд статей, но ни одно из решений не работает для меня.Узел JS Сессия не сохраняется
Моя установка:
app.use(cookieParser());
app.use(session({
pool: true,
key: 'cgtracker.cookie',
resave: false,
saveUninitialized: false,
secret: '1234567890QWERTY',
cookie: {maxAge: 100000},
store: new MySQLStore(options),
}));
Я использую MySQLStore ('экспресс-MySQL-сессии'). Это связано с моей Db и работает, как expected.Running это ->
router.post('/Login', function (req, res) {
logger.log("info", "Attempting Login for user: " + req.body.Username);
req.session.username = req.body.Username;
res.send('Created session for: ' + req.body.Username);
Создает запись в моей сессии таблицы для сеанса с истечением.
| 2gbIWNuFVcE3GmjrFMEctdZlvBMufqiN | 1457713316 | {"cookie":{"originalMaxAge":100000,"expires":"2016-03-11T16:21:55.580Z","httpOnly":t rue,"path":"/"},"username":"chris.rayner"}
Моя проблема в том, что я не могу получить сеанс ни в какой другой функции. Простой тест здесь:
router.get('/', function (req, res) {
logger.log("info", "Current Session: " + JSON.stringify(req.session));
}
я получаю:
Current Session: {\"cookie\":{\"originalMaxAge\":100000,\"expires\":\"2016-03-11T16:24:15.212Z\",\"httpOnly\":true,\"path\":\"/\"}}","timestamp":"2016-03-11T16:22:35.212Z"}`
Где мои данные сессии ушли ?!
Я чувствую, что мне не хватает чего-то очевидного, но я пробовал так много вариаций в исследованиях. Я становлюсь немного потерянным.
My cookie cookie сконструирован правильно, хотя значение, похоже, не коррелирует с каким-либо из SessionID, хранящимся в таблице сеансов.
Любая помощь/идеи/предложения были бы очень оценены!
Chris
Итак, похоже, проблема немного глубже. Снятие кода обратно на основы. Я не могу создать файл cookie в запросе POST, он никогда не хранится в браузере и, следовательно, недоступен для будущих запросов. Работает отлично в GET, но я хотел бы установить этот файл cookie в моей функции POST входа. – CRayner