2025-09-07 21:10:39 +02:00

47 lines
1.3 KiB
TypeScript

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();
};