2013-12-02 3 views
0

Я использую cookieSession с помощью Express, и я хочу добавить информацию на сессии, не добавляя ее в файл cookie.Nodejs добавляет переменную less-cookie в сеанс

Я полагаю, только sessionId необходимо хранить на клиенте, но я не
понять, как добавить больше информации без него в конечном итоге в печенье.

Это примерно то, что я хочу:

req.session.sessionId = "sessionId" -> in the cookiesession (It's work) 
req.session.info2 = "info2" -> only linked to the session. (How to do this ?) 

Можно добавить объект к сессии без него посылается клиенту?

ответ

2

Вот как работает cookieSession: он хранит все данные сеанса в файле cookie.

Если вы не хотите этого, вы должны использовать регулярные express.session промежуточное программное обеспечение (вместо express.cookieSession), но это потребует от вас использовать сессионный магазин, потому что данные должны храниться где-то .

Вы можете использовать по умолчанию MemoryStore - которая хранит все данные в памяти, а это означает, что он будет быть потерян, когда ваше приложение Node перезапуска - или использовать более стойкие решения, например, с помощью connect-redis для хранения данных сессии в базы данных Redis.

Если вы просто не хотите, чтобы данные сеанса были видны, есть также библиотеки сеансов на стороне клиента, которые полностью шифруют данные, хранящиеся в файле cookie, поэтому они не видны. Одна из таких библиотек - node-client-sessions.

+0

Спасибо за ваш четкий ответ, слишком плохо для меня. Я достиг ограниченного количества файлов cookie, и я решил разрешить свою проблему при сохранении функциональности cookie-сессии ... Мне нужно найти другое решение ... – Olithom

+0

Если у вас действительно большие файлы cookie, возможно [сжатие] (http : //nodejs.org/api/zlib.html) может решить некоторые из ваших проблем. – robertklep

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