Skip to content

Commit d2cce76

Browse files
authored
Merge pull request #780 from SISheogorath/fix/sessionSecret
Automatically generate a session secret if default is used
2 parents 1649a9b + 3599fb7 commit d2cce76

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

lib/config/default.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ module.exports = {
4646
// session
4747
sessionName: 'connect.sid',
4848
sessionSecret: 'secret',
49+
sessionSecretLen: 128,
4950
sessionLife: 14 * 24 * 60 * 60 * 1000, // 14 days
5051
staticCacheTime: 1 * 24 * 60 * 60 * 1000, // 1 day
5152
// socket.io

lib/config/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
'use strict'
33

4+
const crypto = require('crypto')
45
const fs = require('fs')
56
const path = require('path')
67
const {merge} = require('lodash')
@@ -117,6 +118,14 @@ for (let i = keys.length; i--;) {
117118
}
118119
}
119120

121+
// Generate session secret if it stays on default values
122+
if (config.sessionSecret === 'secret') {
123+
logger.warn('Session secret not set. Using random generated one. Please set `sessionSecret` in your config.js file. All users will be logged out.')
124+
config.sessionSecret = crypto.randomBytes(Math.ceil(config.sessionSecretLen / 2)) // generate crypto graphic random number
125+
.toString('hex') // convert to hexadecimal format
126+
.slice(0, config.sessionSecretLen) // return required number of characters
127+
}
128+
120129
// Validate upload upload providers
121130
if (['filesystem', 's3', 'minio', 'imgur'].indexOf(config.imageUploadType) === -1) {
122131
logger.error('"imageuploadtype" is not correctly set. Please use "filesystem", "s3", "minio" or "imgur". Defaulting to "imgur"')

0 commit comments

Comments
 (0)