@defikitdotnet/x-ai-combat
Version:
XCombatAI - Social Media Engagement Template for the Agent Framework
32 lines • 1.03 kB
JavaScript
import jwt from '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
*/
export 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 = jwt.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' });
}
};
//# sourceMappingURL=auth.js.map