mirror of
https://github.com/directus/directus.git
synced 2026-02-04 15:25:04 -05:00
29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
import expressSession, { Store } from 'express-session';
|
|
import env from '../env';
|
|
import { getConfigFromEnv } from '../utils/get-config-from-env';
|
|
import getDatabase from '../database';
|
|
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_'));
|
|
}
|
|
|
|
if (env.SESSION_STORE === 'database') {
|
|
const KnexSessionStore = require('connect-session-knex')(expressSession);
|
|
store = new KnexSessionStore({
|
|
knex: getDatabase(),
|
|
tablename: 'oauth_sessions', // optional. Defaults to 'sessions'
|
|
});
|
|
}
|
|
|
|
export const session = expressSession({ store, secret: env.SECRET as string, saveUninitialized: false, resave: false });
|