Spaces:
Running
Running
File size: 965 Bytes
ee0bba4 bafd3be ee0bba4 6c9bf94 ee0bba4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import { Request, Response, NextFunction } from "express";
import jwt from "jsonwebtoken";
import dotenv from "dotenv";
dotenv.config();
export interface AuthRequest extends Request {
userId?: number;
userEmail?: string;
file?: Express.Multer.File;
files?: Express.Multer.File[] | { [fieldname: string]: Express.Multer.File[] };
}
export const authenticateToken = (
req: AuthRequest,
res: Response,
next: NextFunction
) => {
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1];
if (!token) {
return res.status(401).json({ success: false, error: "No token provided" });
}
const jwtSecret = process.env.JWT_SECRET || "";
jwt.verify(token, jwtSecret, (err: any, decoded: any) => {
if (err) {
return res.status(403).json({ success: false, error: "Invalid or expired token" });
}
req.userId = decoded.userId;
req.userEmail = decoded.email;
next();
});
};
|