import config from 'config' import jwt from 'jsonwebtoken' import type { Request, Response, NextFunction } from 'express'; interface ResponseAndUser extends Request { user?: string } function auth(req: ResponseAndUser, res: Response, next: NextFunction) { // Get token from header const token = req.header('x-auth-token'); // Check if not token if (!token) { return res.status(401).json({ msg: 'No token, authorization denied' }); } // Verify token try { jwt.verify(token, config.get('jwtSecret'), (error, decoded) => { if (error) { return res.status(401).json({ msg: 'Token is not valid' }); } else { if (decoded && typeof decoded !== "string") req.user = decoded?.user; next(); } }); } catch (err) { console.error('something wrong with auth middleware'); res.status(500).json({ msg: 'Server Error' }); } }; export default auth