Add SESSION_STORE options (#5403)

* Allow configuring the session storage driver

Fixes #3814

* Document SESSION_STORE env var

* Add missing dependency

* Docs tweak
This commit is contained in:
Rijk van Zanten
2021-04-30 18:18:39 -04:00
committed by GitHub
parent 81f4c25c9b
commit a3898fa321
7 changed files with 119 additions and 20 deletions

View File

@@ -0,0 +1,20 @@
import expressSession, { Store } from 'express-session';
import env from '../env';
import { getConfigFromEnv } from '../utils/get-config-from-env';
let store: Store | undefined = undefined;
if (env.SESSION_STORE === 'redis') {
const Redis = require('ioredis');
const RedisStore = require('connect-redis')(expressSession);
const redisClient = new Redis(env.SESSION_REDIS || getConfigFromEnv('SESSION_REDIS_'));
store = new RedisStore({ client: redisClient });
}
if (env.SESSION_STORE === 'memcache') {
const MemcachedStore = require('connect-memcached')(expressSession);
store = new MemcachedStore(getConfigFromEnv('SESSION_MEMCACHE_'));
}
export const session = expressSession({ store, secret: env.SECRET as string, saveUninitialized: false, resave: false });