feat: session secret

This commit is contained in:
Sérgio Salgado 2021-01-28 14:47:33 +00:00 committed by Josh Harvey
parent 6396eb8247
commit 6e7794bfc6
2 changed files with 26 additions and 11 deletions

View file

@ -13,6 +13,8 @@ const { ApolloServer, AuthenticationError } = require('apollo-server-express')
const _ = require('lodash/fp')
const session = require('express-session')
const pgSession = require('connect-pg-simple')(session)
const hkdf = require('futoin-hkdf')
const pify = require('pify')
const login = require('./services/login')
const register = require('./routes/authentication')
@ -20,6 +22,7 @@ const register = require('./routes/authentication')
const options = require('../options')
const db = require('../db')
const users = require('../users')
const mnemonicHelpers = require('../mnemonic-helpers')
const authRouter = require('./routes/auth')
const { AuthDirective } = require('./graphql/directives')
@ -44,13 +47,22 @@ app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true })) // support encoded bodies
app.use(express.static(path.resolve(__dirname, '..', '..', 'public')))
const getSecret = () => {
const mnemonic = fs.readFileSync(options.mnemonicPath, 'utf8')
return hkdf(
mnemonicHelpers.toEntropyBuffer(mnemonic),
16,
{ salt: 'lamassu-server-salt', info: 'operator-id' }
).toString('hex')
}
app.use('*', session({
store: new pgSession({
pgPromise: db,
tableName: 'user_sessions'
}),
name: 'lid',
secret: 'MY_SECRET',
secret: getSecret(),
resave: false,
saveUninitialized: false,
cookie: {