// @ts-check const { IncomingMessage } = require("http"); const decrypt = require("./decrypt"); const parseCookies = require("../../utils/backend/parseCookies"); /** * @async * @param {IncomingMessage} req - https request object * * @returns {Promise<({ email: string, password: string, authKey: string, logged_in_status: boolean, date: number } | null)>} */ module.exports = async function (req) { const cookies = parseCookies({ request: req }); /** ********************* Check for existence of required cookie */ if (!cookies?.datasquirelSuAdminUserAuthKey) { return null; } /** ********************* Grab the payload */ let userPayload = decrypt(cookies.datasquirelSuAdminUserAuthKey); /** ********************* Return if no payload */ if (!userPayload) return null; /** ********************* Parse the payload */ let userObject = JSON.parse(userPayload); if (userObject.password !== process.env.DSQL_USER_KEY) return null; if (userObject.authKey !== process.env.DSQL_SPECIAL_KEY) return null; //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// /** ********************* return user object */ return userObject; };