@defikitdotnet/x-ai-combat
Version:
XCombatAI - Social Media Engagement Template for the Agent Framework
39 lines • 1.36 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifyToken = void 0;
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
const JWT_SECRET = process.env.JWT_SECRET || 'x-combat-ai-secret-key';
/**
* Middleware to verify JWT token
* Extracts token from cookies and verifies it
* If valid, attaches decoded payload to req.user
*/
const verifyToken = async (req, res, next) => {
const authHeader = req.headers.authorization;
const token = authHeader && authHeader.startsWith('Bearer ')
? authHeader.split(' ')[1]
: req.cookies?.jwt;
if (!token) {
res.status(401).json({ error: 'Access denied. No token provided.' });
return;
}
try {
// Verify token
const decoded = jsonwebtoken_1.default.verify(token, JWT_SECRET);
// Add user to request
req.XaicombatUser = decoded;
next();
}
catch (error) {
if (error.name === 'TokenExpiredError') {
res.status(401).json({ error: 'Token expired' });
return;
}
res.status(401).json({ error: 'Invalid token' });
}
};
exports.verifyToken = verifyToken;
//# sourceMappingURL=auth.js.map