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

Настройка экспресс-сессии
Для того, чтобы настроить экспресс-сессию, вам необходимо сделать следующее:
- Включите экспресс-сеанс в вашем файле app.js или основной точке входа.
- Создайте промежуточное ПО, внедряемое в каждый маршрут и проверяющее наличие части информации в сеансе.
- Выберите свое хранилище правильно, по умолчанию экспресс-сеанс использует 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 = истина;
Это все люди!