Как с почти любым веб-приложением, мне нужен способ ссылки на текущего пользователя в моем приложении node.js.Где я должен хранить текущего пользователя в node.js?
У меня работает система входа/сессии, но сегодня я заметил, что, когда я вхожу в приложение в одном браузере и просматриваю его в другом, я могу видеть те же данные, что и в первом браузере.
В настоящее время я сохраняю информацию о текущем пользователе в глобальном объекте app.current_user, но теперь я понимаю, что он является общим для всех запросов/сеансов, поскольку node.js является однопоточным - и, следовательно, является плохим идея.
Что было бы правильным способом сохранить ссылку на текущего пользователя? Текущий пользователь не просто хэш пользовательских данных, а модель Mongoose, поэтому я думаю, что сохранение в cookie не было бы хорошей идеей?
BTW - Я также сохраняю настройки пользователя и еще несколько вещей, которые я не хочу извлекать снова каждый раз, когда я что-то делаю с пользователем и их настройками (что может случиться довольно много раз за один запрос). Я думаю, вы могли бы сказать, что я кэширую текущего пользователя в памяти.
Я использую passport.js для аутентификации, и вся информация пользователя хранится в req.user. Я создал свою собственную модель мангуста для своего пользователя. –
@StanCromlish - мне просто стало понятно, что req привязан к текущему запросу (т. Е. Он не является глобальным), так что это сработает. Тем не менее, я не уверен, могу ли я передать объект req в моем приложении (используя здесь схему Locomotivejs) – ragulka
Я не знаю ни о Locomotivejs. Я передаю объект req в своих Node.js с помощью Express и EJS Views. Если вы можете перенаправлять с req, res с помощью Локомотива, вы должны быть в состоянии сделать все в порядке. –