mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
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:
20
api/src/middleware/session.ts
Normal file
20
api/src/middleware/session.ts
Normal 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 });
|
||||
Reference in New Issue
Block a user