// @ts-check import { IncomingMessage } from "http"; import parseCookies from "../../utils/backend/parseCookies"; import decrypt from "../dsql/decrypt"; import getAuthCookieNames from "./cookies/get-auth-cookie-names"; export default async function (req: IncomingMessage): Promise<{ email: string; password: string; authKey: string; logged_in_status: boolean; date: number; } | null> { const { keyCookieName, csrfCookieName } = getAuthCookieNames(); const suKeyName = `${keyCookieName}_su`; const cookies = parseCookies({ request: req }); if (!cookies?.[suKeyName]) { return null; } /** ********************* Grab the payload */ let userPayload = decrypt({ encryptedString: cookies[suKeyName], }); /** ********************* 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; }