Spaces:
Sleeping
Sleeping
File size: 727 Bytes
149698e | 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 | import type { Request, Response, NextFunction } from 'express';
import jwt from 'jsonwebtoken';
import { config } from '../config/env.js';
export interface AuthRequest extends Request {
userId?: string;
}
export function requireAuth(req: AuthRequest, res: Response, next: NextFunction) {
const token = req.cookies?.token || req.headers.authorization?.replace('Bearer ', '');
if (!token) {
res.status(401).json({ error: true, message: 'Authentification requise' });
return;
}
try {
const payload = jwt.verify(token, config.JWT_SECRET) as { userId: string };
req.userId = payload.userId;
next();
} catch {
res.status(401).json({ error: true, message: 'Token invalide ou expiré' });
}
}
|