UNPKG

@defikitdotnet/x-ai-combat

Version:

XCombatAI - Social Media Engagement Template for the Agent Framework

32 lines 1.03 kB
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