В основном у меня есть веб-приложение Node.js, которое использует модуль экспресс-сеанса для обработки сеансов.
Он работает отлично, но с одним ожиданием, которое разрушает этот вариант для меня. Если сервер выйдет из строя или я разверну новую версию, сеансы будут полностью уничтожены, что для меня неприемлемо. Также плохо, что я не могу разделить сеанс между моим основным и резервным серверами.
Итак, моя цель - обрабатывать сеанс через внешнюю облачную базу данных, просто думайте об этом как о «случайной базе данных mysql».
Но вот в чем дело, я просто не понимаю, как это сделать. Я могу назначать уникальные идентификаторы сеансам и в зависимости от них загружать ресурсы из базы данных, но как я могу повторно распознать пользователей, если эти сеансы будут уничтожены?
Мне не хватает знаний о сессиях, но, поскольку это довольно важная тема для меня, я задаю здесь вопрос.





Вы можете использовать любой из этих магазинов (или написать свой собственный):
https://www.npmjs.com/package/express-session#compatible-session-stores
Я использую connect mongo для хранения сеансов в моей базе данных mongo, код выглядит следующим образом (app.js):
import session from 'express-session';
const MongoStore = require('connect-mongo')(session);
...
...
api.use(session({
secret: global.config.secrets.session,
saveUninitialized: false, // don't create session until something stored
resave: false, //don't save session if unmodified
store: new MongoStore({
mongooseConnection: mongoose.connection,
touchAfter: 24 * 3600 // time period in seconds
})
}));