@ -70,7 +70,6 @@ FRONT_PORT=3001
|
|||||||
# MUTATION_MAXIMUM_AFFECTED_RECORDS=100
|
# MUTATION_MAXIMUM_AFFECTED_RECORDS=100
|
||||||
# CHROME_EXTENSION_ID=bggmipldbceihilonnbpgoeclgbkblkp
|
# CHROME_EXTENSION_ID=bggmipldbceihilonnbpgoeclgbkblkp
|
||||||
# PG_SSL_ALLOW_SELF_SIGNED=true
|
# PG_SSL_ALLOW_SELF_SIGNED=true
|
||||||
# SESSION_STORE_SECRET=replace_me_with_a_random_string_session
|
|
||||||
# ENTERPRISE_KEY=replace_me_with_a_valid_enterprise_key
|
# ENTERPRISE_KEY=replace_me_with_a_valid_enterprise_key
|
||||||
# SSL_KEY_PATH="./certs/your-cert.key"
|
# SSL_KEY_PATH="./certs/your-cert.key"
|
||||||
# SSL_CERT_PATH="./certs/your-cert.crt"
|
# SSL_CERT_PATH="./certs/your-cert.crt"
|
||||||
|
|||||||
@ -828,15 +828,6 @@ export class EnvironmentVariables {
|
|||||||
@IsString()
|
@IsString()
|
||||||
APP_SECRET: string;
|
APP_SECRET: string;
|
||||||
|
|
||||||
@EnvironmentVariablesMetadata({
|
|
||||||
group: EnvironmentVariablesGroup.ServerConfig,
|
|
||||||
sensitive: true,
|
|
||||||
description: 'Secret for session store',
|
|
||||||
})
|
|
||||||
@IsString()
|
|
||||||
@IsOptional()
|
|
||||||
SESSION_STORE_SECRET = 'replace_me_with_a_random_string_session';
|
|
||||||
|
|
||||||
@EnvironmentVariablesMetadata({
|
@EnvironmentVariablesMetadata({
|
||||||
group: EnvironmentVariablesGroup.ServerConfig,
|
group: EnvironmentVariablesGroup.ServerConfig,
|
||||||
subGroup: EnvironmentVariablesSubGroup.RateLimiting,
|
subGroup: EnvironmentVariablesSubGroup.RateLimiting,
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
import { createHash } from 'crypto';
|
||||||
|
|
||||||
import RedisStore from 'connect-redis';
|
import RedisStore from 'connect-redis';
|
||||||
import session from 'express-session';
|
import session from 'express-session';
|
||||||
import { createClient } from 'redis';
|
import { createClient } from 'redis';
|
||||||
@ -12,8 +14,18 @@ export const getSessionStorageOptions = (
|
|||||||
|
|
||||||
const SERVER_URL = environmentService.get('SERVER_URL');
|
const SERVER_URL = environmentService.get('SERVER_URL');
|
||||||
|
|
||||||
|
const appSecret = environmentService.get('APP_SECRET');
|
||||||
|
|
||||||
|
if (!appSecret) {
|
||||||
|
throw new Error('APP_SECRET is not set');
|
||||||
|
}
|
||||||
|
|
||||||
|
const sessionSecret = createHash('sha256')
|
||||||
|
.update(`${appSecret}SESSION_STORE_SECRET`)
|
||||||
|
.digest('hex');
|
||||||
|
|
||||||
const sessionStorage: session.SessionOptions = {
|
const sessionStorage: session.SessionOptions = {
|
||||||
secret: environmentService.get('SESSION_STORE_SECRET'),
|
secret: sessionSecret,
|
||||||
resave: false,
|
resave: false,
|
||||||
saveUninitialized: false,
|
saveUninitialized: false,
|
||||||
proxy: true,
|
proxy: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user