Как сохранить информацию об идентификаторе пользователя, используя everyauth и nodejs - PullRequest
1 голос
/ 16 ноября 2011

everyauth.everymodule.findUserById вызывается с параметром id, который Everyauth получает из req.session. Затем его можно использовать для загрузки информации о пользователе, которая передается в req.user

На локальном хосте при перезапуске сервера узла app.js сеанс очищается.

То, что я хотел бы сделать, - это установить cookie, который содержит идентификатор пользователя, который я могу затем передать каждому пользователю, чтобы при перезапуске сервера он знал идентификатор, и идентификатор каждого модуля.findUserBy мог выполнить свою задачу.

Я использую expressjs и обнаружил, что и connect-mongodb, и cookie-сессии не работают. Так каков будет предложенный способ приблизиться к этому?

Другими словами, есть ли способ предварительно заполнить каждый пользователь информацией о пользователе?

1 Ответ

3 голосов
/ 01 декабря 2011

Я думаю, вам нужно настроить постоянное хранилище сеансов за пределами expressjs.Поскольку сеансы по умолчанию в expressjs хранятся в памяти, они теряются при перезапуске сервера.Я закончил с connect-redis над connect-mongo, хотя я использую MongoDb для своей базы данных.Я хотел, чтобы данные сеанса хранились отдельно от базы данных.Я не уверен, было ли это необходимо, но его было очень просто настроить.

Кроме того, пока мы обсуждаем эту тему, вот некоторые другие препятствия, с которыми я столкнулся во время сеансов:

  • Убедитесь, что время сервера установлено правильно, или сеансы могут преждевременно истечь.
  • Одна вещь, которая поймала меня во время разработки, была результатом того, что сеанс снят по отпечатку пальцастрока агента пользователя, предоставляемая браузером.Я обнаружил, что у меня включен плагин для Firefox (FirePHP, расширение Firebug), который изменял строку моего агента пользователя после первого запроса.Это приводило к тому, что сессии действовали так, как будто они действительны только до закрытия браузера.Мне потребовалось несколько дней, чтобы отследить это.

Надеюсь, это поможет.

...