feat: decouple l-s entrypoint
This commit is contained in:
parent
2a2c1fccc8
commit
f4d6b5e454
48 changed files with 411 additions and 232 deletions
|
|
@ -20,7 +20,6 @@ const _ = require('lodash/fp')
|
|||
const machineLoader = require('../machine-loader')
|
||||
const T = require('../time')
|
||||
const logger = require('../logger')
|
||||
const options = require('../options')
|
||||
|
||||
const accounts = require('./accounts')
|
||||
const config = require('./config')
|
||||
|
|
@ -35,18 +34,20 @@ const supportServer = require('./admin-support')
|
|||
|
||||
const NEVER = new Date(Date.now() + 100 * T.years)
|
||||
const REAUTHENTICATE_INTERVAL = T.minute
|
||||
const idPhotoCardBasedir = _.get('idPhotoCardDir', options)
|
||||
const frontCameraBasedir = _.get('frontCameraDir', options)
|
||||
const operatorDataBasedir = _.get('operatorDataDir', options)
|
||||
|
||||
const HOSTNAME = process.env.HOSTNAME
|
||||
const KEY_PATH = process.env.KEY_PATH
|
||||
const CERT_PATH = process.env.CERT_PATH
|
||||
const ID_PHOTO_CARD_DIR = process.env.ID_PHOTO_CARD_DIR
|
||||
const FRONT_CAMERA_DIR = process.env.FRONT_CAMERA_DIR
|
||||
const OPERATOR_DATA_DIR = process.env.OPERATOR_DATA_DIR
|
||||
|
||||
const devMode = argv.dev
|
||||
|
||||
const version = require('../../package.json').version
|
||||
logger.info('Version: %s', version)
|
||||
|
||||
const hostname = options.hostname
|
||||
|
||||
if (!hostname) {
|
||||
if (!HOSTNAME) {
|
||||
logger.error('no hostname specified.')
|
||||
process.exit(1)
|
||||
}
|
||||
|
|
@ -82,7 +83,7 @@ app.get('/api/totem', (req, res) => {
|
|||
|
||||
if (!name) return res.status(400).send('Name is required')
|
||||
|
||||
return pairing.totem(hostname, name)
|
||||
return pairing.totem(HOSTNAME, name)
|
||||
.then(totem => res.send(totem))
|
||||
})
|
||||
|
||||
|
|
@ -222,27 +223,27 @@ app.use((err, req, res, next) => {
|
|||
})
|
||||
|
||||
const certOptions = {
|
||||
key: fs.readFileSync(options.keyPath),
|
||||
cert: fs.readFileSync(options.certPath)
|
||||
key: fs.readFileSync(KEY_PATH),
|
||||
cert: fs.readFileSync(CERT_PATH)
|
||||
}
|
||||
|
||||
app.use(serveStatic(path.resolve(__dirname, 'public')))
|
||||
|
||||
if (!fs.existsSync(idPhotoCardBasedir)) {
|
||||
makeDir.sync(idPhotoCardBasedir)
|
||||
if (!fs.existsSync(ID_PHOTO_CARD_DIR)) {
|
||||
makeDir.sync(ID_PHOTO_CARD_DIR)
|
||||
}
|
||||
|
||||
if (!fs.existsSync(frontCameraBasedir)) {
|
||||
makeDir.sync(frontCameraBasedir)
|
||||
if (!fs.existsSync(FRONT_CAMERA_DIR)) {
|
||||
makeDir.sync(FRONT_CAMERA_DIR)
|
||||
}
|
||||
|
||||
if (!fs.existsSync(operatorDataBasedir)) {
|
||||
makeDir.sync(operatorDataBasedir)
|
||||
if (!fs.existsSync(OPERATOR_DATA_DIR)) {
|
||||
makeDir.sync(OPERATOR_DATA_DIR)
|
||||
}
|
||||
|
||||
app.use('/id-card-photo', serveStatic(idPhotoCardBasedir, {index: false}))
|
||||
app.use('/front-camera-photo', serveStatic(frontCameraBasedir, {index: false}))
|
||||
app.use('/operator-data', serveStatic(operatorDataBasedir, {index: false}))
|
||||
app.use('/id-card-photo', serveStatic(ID_PHOTO_CARD_DIR, {index: false}))
|
||||
app.use('/front-camera-photo', serveStatic(FRONT_CAMERA_DIR, {index: false}))
|
||||
app.use('/operator-data', serveStatic(OPERATOR_DATA_DIR, {index: false}))
|
||||
|
||||
function register (req, res, next) {
|
||||
const otp = req.query.otp
|
||||
|
|
@ -259,7 +260,7 @@ function register (req, res, next) {
|
|||
const cookieOpts = {
|
||||
httpOnly: true,
|
||||
secure: true,
|
||||
domain: hostname,
|
||||
domain: HOSTNAME,
|
||||
sameSite: true,
|
||||
expires: NEVER
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@ const _ = require('lodash/fp')
|
|||
const serveStatic = require('serve-static')
|
||||
const path = require('path')
|
||||
|
||||
const options = require('../options')
|
||||
const KEY_PATH = process.env.KEY_PATH
|
||||
const CERT_PATH = process.env.CERT_PATH
|
||||
const LAMASSU_CA_PATH = process.env.LAMASSU_CA_PATH
|
||||
|
||||
app.use(morgan('dev'))
|
||||
app.use(helmet({noCache: true}))
|
||||
|
|
@ -20,9 +22,9 @@ app.use(serveStatic(path.resolve(__dirname, '..', '..', 'public'), {
|
|||
}))
|
||||
|
||||
const certOptions = {
|
||||
key: fs.readFileSync(options.keyPath),
|
||||
cert: fs.readFileSync(options.certPath),
|
||||
ca: [fs.readFileSync(options.lamassuCaPath)],
|
||||
key: fs.readFileSync(KEY_PATH),
|
||||
cert: fs.readFileSync(CERT_PATH),
|
||||
ca: [fs.readFileSync(LAMASSU_CA_PATH)],
|
||||
requestCert: true,
|
||||
rejectUnauthorized: true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,19 +4,18 @@ const readFile = pify(fs.readFile)
|
|||
const crypto = require('crypto')
|
||||
const baseX = require('base-x')
|
||||
|
||||
const options = require('../options')
|
||||
const db = require('../db')
|
||||
const pairing = require('../pairing')
|
||||
|
||||
const ALPHA_BASE = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:'
|
||||
const bsAlpha = baseX(ALPHA_BASE)
|
||||
|
||||
const CA_PATH = process.env.CA_PATH
|
||||
|
||||
const unpair = pairing.unpair
|
||||
|
||||
function totem (hostname, name) {
|
||||
const caPath = options.caPath
|
||||
|
||||
return readFile(caPath)
|
||||
return readFile(CA_PATH)
|
||||
.then(data => {
|
||||
const caHash = crypto.createHash('sha256').update(data).digest()
|
||||
const token = crypto.randomBytes(32)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue