sessionMiddleware.ts 750 B

123456789101112131415161718192021222324
  1. import connectRedis from 'connect-redis';
  2. import session from 'express-session';
  3. import { createClient } from 'redis';
  4. import config from '../../config';
  5. import { COOKIE_MAX_AGE, __prod__ } from '../../config/constants/constants';
  6. const getSessionMiddleware = async (): Promise<any> => {
  7. const RedisStore = connectRedis(session);
  8. const redisClient = createClient(config.redis);
  9. await redisClient.connect();
  10. return session({
  11. name: 'qid',
  12. store: new RedisStore({ client: redisClient as any, disableTouch: true }),
  13. cookie: { maxAge: COOKIE_MAX_AGE, secure: __prod__, sameSite: 'lax', httpOnly: true },
  14. secret: config.JWT_SECRET,
  15. resave: false,
  16. saveUninitialized: false,
  17. });
  18. };
  19. export default getSessionMiddleware;