Понимание экспресс-сессии - PullRequest
0 голосов
/ 25 декабря 2018

Я читал учебник на Youtube, и там автор очень смутно объяснил тему, касающуюся сессии (мы будем использовать cookie-сессию для хранения данных, чтобы у пользователя больше не было входа)

Теперь, покаИзучая следующее, чтобы понять, как работает сессия, я наткнулся на два способа сделать это.

  1. Хранение сеансового сеанса и информации в Mongoose (или любой БД)
  2. Хранение данных в Cookie

И примечание на сайте экспресс-сеанса с указанием

Данные сеанса не сохраняются в самом файле cookie, только идентификатор сеанса.Данные сеанса хранятся на стороне сервера.

А с эта статья

Express будет создавать новый сеанс (и записывать его в базу данных) всякий раз, когда это происходитне обнаружить сессионный cookie.Оказывается, порядок, в котором вы устанавливаете промежуточное программное обеспечение сеанса и указываете Express, где находится ваш статический каталог, имеет довольно драматические нюансы

Мой вопрос: в чем разница между ними?Как мы можем хранить информацию о сеансе в Mongoose?и основываясь на моем смутном понимании, правда ли сделать вывод, что каждый раз, когда приходит запрос от клиента, делается запрос от нашей резервной копии в БД для хранения данных?Если да, то не возникает ли проблем с производительностью?

Кроме того, , почему существует модуль cookie-sesssion npm, когда express-session позволяет хранить файлы cookie на клиенте?

1 Ответ

0 голосов
/ 25 декабря 2018

Обзор сеансов:

Чтобы избежать проверки имени пользователя и пароля для каждого запроса пользователя, создается сеанс для идентификации пользователя.

Данные сеансавсегда хранится на стороне сервера (с использованием хранилища сеансов) независимо от того, хранится ли он в файловой системе ( не предпочтительно ) или в любом хранилище БД, например Redis или Mongo Store, для сохранения постоянных данных сеанса.

сеансИдентификатор отправляется клиенту и сохраняется в Cookie, чтобы он мог использовать его для идентификации пользователя каждый раз, когда он отправляет запрос на сервер.

Этот идентификатор сеанса, хранящийся в клиенте, отправляется в качестве заголовка запроса и используется для проверки, если пользователь прошел проверку подлинности или не использует данные сеанса, хранящиеся на сервере (присутствующие в хранилище сеансов)

Когда сохраняется сеанс и новый идентификатор сеанса отправляется клиенту?

Всякий раз, когда пользователь отправляет запрос на сервер, сервер проверяет, отправлен ли какой-либо идентификатор сеанса с клиента (сохранен в cookie), если сеансданные находятся в хранилище сеансов, затем пользователь проходит проверку подлинности, в противном случае генерируются новые данные сеанса и клиенту отправляется идентификатор сеанса.

Когда удаляются данные сеанса?

КогдаПользователь выходит из системы (необходимо вызвать правильный API), затем данные сеанса удаляются, следовательно, более старый идентификатор сеанса, сохраненный в файле Cookie клиента, становится недействительным.Затем по следующему запросу, сделанному клиентом, сервер должен сгенерировать новый идентификатор сеанса.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...