feat: fetch from db auth secret

This commit is contained in:
José Oliveira 2021-11-20 20:20:16 +00:00
parent 8884c75ffd
commit bca6e15356

View file

@ -1,41 +1,32 @@
const fs = require('fs')
const express = require('express') const express = require('express')
const router = express.Router() const router = express.Router()
const hkdf = require('futoin-hkdf')
const session = require('express-session') const session = require('express-session')
const PgSession = require('connect-pg-simple')(session) const PgSession = require('connect-pg-simple')(session)
const mnemonicHelpers = require('../../mnemonic-helpers')
const db = require('../../db') const db = require('../../db')
const options = require('../../options') const options = require('../../options')
const { USER_SESSIONS_TABLE_NAME } = require('../../constants') const { USER_SESSIONS_TABLE_NAME } = require('../../constants')
const { getOperatorId } = require('../../operator')
const getSecret = () => {
const mnemonic = fs.readFileSync(options.mnemonicPath, 'utf8')
return hkdf(
mnemonicHelpers.toEntropyBuffer(mnemonic),
16,
{ info: 'operator-id' }
).toString('hex')
}
const hostname = options.hostname const hostname = options.hostname
router.use('*', session({ router.use('*', async () => {
store: new PgSession({ return getOperatorId('authentication').then(secret => session({
pgPromise: db, store: new PgSession({
tableName: USER_SESSIONS_TABLE_NAME pgPromise: db,
}), tableName: USER_SESSIONS_TABLE_NAME
name: 'lamassu_sid', }),
secret: getSecret(), name: 'lamassu_sid',
resave: false, secret: secret,
saveUninitialized: false, resave: false,
cookie: { saveUninitialized: false,
httpOnly: true, cookie: {
secure: true, httpOnly: true,
domain: hostname, secure: true,
sameSite: true, domain: hostname,
maxAge: 60 * 10 * 1000 // 10 minutes sameSite: true,
} maxAge: 60 * 10 * 1000 // 10 minutes
})) }
}))
})
module.exports = router module.exports = router