mirror of
https://github.com/20kaushik02/express-sequelize-backend-template.git
synced 2025-12-06 10:34:07 +00:00
overall: formatting check, jsdoc type hints, express res/return stuff utils - changes in logger, dateformatter and removed unneeded ones .env file changes license check, readme update package.json update - version, deps, URLs server cleanup sequelize config check
38 lines
871 B
JavaScript
38 lines
871 B
JavaScript
const logger = require("../utils/logger")(module);
|
|
|
|
const typedefs = require("../typedefs");
|
|
|
|
const creds = JSON.parse(process.env.ADMIN_CREDS);
|
|
|
|
/**
|
|
* Middleware to validate admin access
|
|
* @param {typedefs.Req} req
|
|
* @param {typedefs.Res} res
|
|
* @param {typedefs.Next} next
|
|
*/
|
|
const adminQueryCreds = async (req, res, next) => {
|
|
try {
|
|
/** @type {any} */
|
|
const { user, access } = req.query;
|
|
if (creds[user] === access) {
|
|
logger.info("Admin access - " + user);
|
|
next();
|
|
}
|
|
else {
|
|
// we do a bit of trolling here
|
|
const unauthIP = req.headers['x-real-ip'] || req.ip
|
|
res.status(401).send("Intruder alert. IP address: " + unauthIP);
|
|
logger.warn("Intruder alert.", { ip: unauthIP });
|
|
return;
|
|
}
|
|
} catch (error) {
|
|
res.sendStatus(500);
|
|
logger.error("adminQueryCreds", { error });
|
|
return;
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
adminQueryCreds,
|
|
};
|