feat: fetch from db auth secret
This commit is contained in:
parent
8884c75ffd
commit
bca6e15356
1 changed files with 20 additions and 29 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue