Обработка сеансов для простых серверных приложений может быть обеспечена в Node.js и Express с использованием модуля экспресс-сеанса. Давайте рассмотрим конкретный пример настройки с различными параметрами конфигурации. Ура!



Настройка экспресс-сессии

Для того, чтобы настроить экспресс-сессию, вам необходимо сделать следующее:

  1. Включите экспресс-сеанс в вашем файле app.js или основной точке входа.
  2. Создайте промежуточное ПО, внедряемое в каждый маршрут и проверяющее наличие части информации в сеансе.
  3. Выберите свое хранилище правильно, по умолчанию экспресс-сеанс использует MemoryStore в качестве выбранного решения. Это не предназначено для использования в производстве, вам лучше использовать Firestore (если вы используете Firebase), Redis или что-то еще.

Включение экспресс-сессии

Для включения экспресс-сессии вам просто нужно следующее:

Здесь есть несколько ключевых моментов информации, о которых следует знать при использовании экспресс-доставки:

  • name: ‘nameofthesession’ —имя файла cookie идентификатора сеанса.
  • secret: ‘something’ —используется для подписи файла cookie сеанса, используйте что-то безопасное!
  • resave: false — Принудительное повторное сохранение сеанса обратно в хранилище сеансов, если он не был изменен (если установлено значение true);
  • saveUnInitialized: false — заставляет новый сеанс сохраняться при его создании перед изменением;
  • secure: false — если для этого параметра установлено значение «true» во время разработки, вам необходимо убедиться, что у вас включен https, в противном случае новый идентификатор сеанса будет генерироваться каждый раз;
  • maxAge: 60000 — это максимальный возраст файла cookie в миллисекундах, поэтому убедитесь, что вы установили его правильно, в моем случае около 60 с/1 мин.

Создайте свое промежуточное ПО

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

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

Наконец, нам нужно внедрить промежуточное ПО в наши маршруты. Убедитесь, что вы не вводите это в маршруты входа, выхода из системы!

Просто для ясности, вот наш маршрут входа с примером настройки элемента в сеансе:

Наконец, когда мы выходим из системы, мы можем очистить сеанс, уничтожив его следующим образом:

Выбор магазина

Полный список различных хранилищ сеансов можно найти на странице экспресс-сеанса Github здесь (внизу):



Аксиос Гочки

Если вы используете Axios для взаимодействия с API, здесь есть небольшая ошибка, убедитесь, что вы установили следующее, чтобы Axios отправлял файлы cookie в запросах:

axios.defaults.withCredentials = истина;

Это все люди!