Comment étendre l'objet Request dans Express avec TypeScript
Bonjour à tous ! J'écris un backend sur Express avec TypeScript et j'ai rencontré un problème de typage de l'objet Request.
J'ai un middleware qui ajoute des données utilisateur à la requête après l'authentification. Je fais comme ceci :
```typescript
import { Request, Response, NextFunction } from 'express';
import jwt from 'jsonwebtoken';
interface UserPayload {
id: string;
email: string;
role: 'admin' | 'user';
}
export const authMiddleware = (req: Request, res: Response, next: NextFunction) => {
const token = req.headers.authorization?.split(' ')[1];
if (!token) {
return res.status(401).json({ message: 'Pas de token' });
}
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET!) as UserPayload;
req.user = decoded; // Erreur TypeScript : Property 'user' does not exist on type 'Request'
next();
} catch (error) {
return res.status(403).json({ message: 'Token invalide' });
}
};
```
TypeScript se plaint que l'objet Request n'a pas de propriété 'user'.
No answers yet.
Connectez-vous pour laisser une réponse