ChiragPatankar's picture
Upload 33 files
1cf0854 verified
raw
history blame contribute delete
829 Bytes
import jwt from 'jsonwebtoken';
import { Request, Response, NextFunction } from 'express';
export interface AuthenticatedRequest extends Request {
user?: {
userId: number;
tenantId: number;
};
}
export const authenticateToken = (req: AuthenticatedRequest, res: Response, next: NextFunction) => {
const authHeader = req.headers['authorization'];
const token = authHeader && authHeader.split(' ')[1]; // Bearer TOKEN
if (!token) {
return res.status(401).json({ error: 'Access token required' });
}
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET!) as any;
req.user = {
userId: decoded.userId,
tenantId: decoded.tenantId
};
next();
} catch (error) {
return res.status(403).json({ error: 'Invalid or expired token' });
}
};