import { Request, Response, NextFunction } from 'express'; import { authTokens } from '../utils/auth-tokens'; // IdNot Authentication Middleware export const authenticateIdNot = (req: Request, res: Response, next: NextFunction): any => { const authToken = req.headers['authorization']?.replace('Bearer ', '') || req.headers['x-auth-token'] as string || req.body.authToken; if (!authToken) { return res.status(401).json({ success: false, message: 'Token d\'authentification requis' }); } // Find the user by auth token const userAuth = authTokens.find(auth => auth.authToken === authToken); if (!userAuth) { return res.status(401).json({ success: false, message: 'Token d\'authentification invalide' }); } // Check if token has expired if (Date.now() > userAuth.expiresAt) { // Remove expired token const tokenIndex = authTokens.findIndex(auth => auth.authToken === authToken); if (tokenIndex > -1) { authTokens.splice(tokenIndex, 1); } return res.status(401).json({ success: false, message: 'Token d\'authentification expiré' }); } // Add user info to request req.idNotUser = { idNot: userAuth.idNot, authToken: userAuth.authToken }; next(); };