import dotenv from "dotenv"; import { NextFunction, Request, Response } from "express"; import { resolve } from "path"; import { logger } from "../server.js"; dotenv.config({ path: resolve(process.cwd(), `.env.${process.env.NODE_ENV || "development"}`) }); export default function ValidateImsToken(req: Request, res: Response, next: NextFunction) { try { const IMS_TOKEN: string = (process.env.IMS_TOKEN || "").trim(); if (!IMS_TOKEN) { logger.debug("IMS_TOKEN not set, skipping token validation."); next(); return; } const token = req.headers.ims_token || req.headers["ims-token"] || req.headers["x-ims-token"]; if (token !== IMS_TOKEN) { logger.warning("Invalid IMS token provided.", { provided: token }); res.sendStatus(401); return; } next(); } catch (error) { logger.error("Error validating IMS token.", { error: (error as Error).message }); if (!res.headersSent) res.sendStatus(401); } }