Просто отправьте ответ обратно в обратный вызов функции регенерирования. Поскольку регенерация сеанса асинхронна, при возврате к клиенту у него все еще будет более старый сеанс.
ользую сервер Node.js и разрабатываю с помощью среды Connect. Я пытаюсь восстановить SID после определенного интервала, чтобы избежать фиксации сеанса. Есть методreq.session.regenerate который, согласно документам, должен сделать именно это.
«Для восстановления сеанса просто вызовите метод, после завершения новый SID и экземпляр сеанса будут инициализированы в req.session»
Пример кода:
req.session.regenerate(function(err){
// will have a new session here
});
После вызова вышеуказанного метода я проверяю значение req.sessionID, только чтобы обнаружить, что это значение такое же, как и раньше.
Если я пытаюсь получить sessionID из req.session.regenerate и записать его в терминал, я получу новый SID, который еще более озадачивает ~ I.E, почему вы хотите, чтобы SID генерировался только в рамках обратного вызова? Если я назначу значение глобальной переменной, его значение не определено.
У меня такое ощущение, что это что-то действительно очевидное, что я пропускаю.
Любая помощь приветствуется.