diff --git a/src/api/middlewares/authKey.js b/src/api/middlewares/authKey.js new file mode 100644 index 0000000..d48b3b9 --- /dev/null +++ b/src/api/middlewares/authKey.js @@ -0,0 +1,14 @@ +import localStorage from "local-storage"; +import createHttpError from "http-errors"; + +export default (req, res, next) => { + if (localStorage(req.query.authKey) == null) { + next( + new createHttpError.Forbidden( + `middleware:authKey ${req.query.authKey} not authenticated` + ) + ); + return; + } + next(); +}; diff --git a/src/api/middlewares/detailedRequestLogging.js b/src/api/middlewares/detailedRequestLogging.js new file mode 100644 index 0000000..d4cb557 --- /dev/null +++ b/src/api/middlewares/detailedRequestLogging.js @@ -0,0 +1,10 @@ +import { logger } from "../../utils/index.js"; + +export default (req, res, next) => { + logger.debug(`URI: ${req.method} ${req.protocol}://${req.hostname}:${req.client.localPort}${req.originalUrl}`); + logger.debug(`Headers: ${JSON.stringify(req.headers, null, 2)}`); + logger.debug(`Cookies: ${JSON.stringify(req.cookies, null, 2)}`); + logger.debug(`Query: ${JSON.stringify(req.query, null, 2)}`); + logger.debug(`Body: ${JSON.stringify(req.body, null, 2)}`); + next(); +}; diff --git a/src/api/middlewares/index.js b/src/api/middlewares/index.js new file mode 100644 index 0000000..b36eefe --- /dev/null +++ b/src/api/middlewares/index.js @@ -0,0 +1,9 @@ +// import { Router } from "express"; +import authKey from "./authKey.js"; +import detailedRequestLogging from "./detailedRequestLogging.js"; + +export default (router) => { + router.use("/", detailedRequestLogging); + router.use("/interactions-flow", authKey); + router.use("/unified-data-gateway", authKey); +};