Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 39 40 41 42 43 44 45 46 47 | 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();
};
|