Как обрабатывать регенерацию сеанса, когда redis сбрасывается с помощью connect-redis, express -session и паспорта в nodejs - PullRequest
0 голосов
/ 14 июля 2020

Я использую паспорт js для аутентификации HTTP-запросов в nodejs. Я использую redis в качестве хранилища сеансов с express -session и connect-redis.

Вот мой код

const session = require('express-session');


const redis = require('redis');
const redisStore = require('connect-redis')(session);

const redisClient = redis.createClient({
   host:process.env.REDIS_HOST,
   port:process.env.REDIS_PORT
})

const passport = require('passport');
const sessionStore = new redisStore({

   client: redisClient
})
require('./Services/passport');





app.use(session({
   store: sessionStore,
   secret: process.env.SESSION_KEY,
   saveUninitialized: true,
   resave:true,
   cookie: {
      secure: true,
      maxAge: 60 * 24 * 60 * 60 * 1000,
      httpOnly: true,
      signed: true,
    
  }    
}))

app.use(passport.initialize());
app.use(passport.session());

все работает нормально, пока я не грипп sh мой кластер redis . Мой вопрос: могу ли я воссоздать сеансы, если redis -cluster сброшен. Connect.sid cook ie все еще существует, и информация о пользователе все еще хранится в базе данных. Я просто хочу знать, как воссоздать новый сеанс и передать его ie существующему пользователю

...