Files added to repository

This commit is contained in:
2023-06-18 20:46:04 +02:00
commit bf9b20499b
17 changed files with 665 additions and 0 deletions

74
middlewares/auth.js Executable file
View File

@@ -0,0 +1,74 @@
const jwt = require('jwt-simple');
const config = require('../config/config');
const moment = require('moment');
exports.Authenticated = function(req, res, next) {
if(req.headers.authorization === "") {
res.status(401);
return res.json({error: "No has iniciado sesión"});
}
let token = req.headers.authorization;
try{
let payload = jwt.decode(token, config.TOKEN_SECRET, 'HS512');
if(payload.exp < moment().unix()){
return res.json({error: "Sesión Finalizada"});
}
req.usuario = payload.sub.split('-')[0];
req.TFA = payload.TFA;
if(payload.TFA){
throw new Error("TOken no valid");
}
next();
}
catch(error){
res.status(401);
return res.json({error: "Token no válido"});
}
}
exports.AuthenticatedFA = function(req, res, next) {
if(req.headers.authorization === "") {
res.status(401);
return res.json({error: "No has iniciado sesión"});
}
let token = req.headers.authorization;
try{
let payload = jwt.decode(token, config.TOKEN_SECRET, 'HS512');
if(payload.exp < moment().unix()){
return res.json({error: "Sesión Finalizada"});
}
if(!payload.TFA){
throw new Error("TOken no valid");
}
req.usuario = payload.sub.split('-')[0];
next();
}
catch(error){
res.status(401);
return res.json({error: "Token no válido"});
}
}
/*exports.AlreadyToken = function(req, res, next) {
if(req.headers.authorization === "") {
next();
}
let token = req.headers.authorization;
try{
let payload = jwt.decode(token, config.TOKEN_SECRET, 'HS512'); //Nueva version, ahora no suelta una excepcion cuando expira el token...
if(payload.exp < moment().unix()){
throw Error();
}
return res.status(204).end();
}
catch(error){
next();
}
}*/

52
middlewares/log.js Executable file
View File

@@ -0,0 +1,52 @@
let winston = require('winston');
var loggerW = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(info => {
return `${info.timestamp} ${info.level}: ${info.message}`;
},
error => {
return `${error.timestamp} ${error.level}: ${error.message}`;
})
),
transports: [
//new winston.transports.Console(),
new winston.transports.File({ filename: 'combined.log' })
]
});
exports.errorMensaje=function (req,er){
let usuario = req.usuario;
if(req.body.usuario){
usuario= req.body.usuario;
}
let ipUsuario=req.headers['user-agent'] ||null;
//console.log(ipUsuario+" ip");
let mensaje = "ERROR--"+er+"--ERROR El usuario: |"+usuario +"| solicita "+req.originalUrl+" en el Dispositivo: "+ipUsuario;
loggerW.error(mensaje);
}
exports.serverActionInfo=function (req,serverAction){
let usuario = req.usuario;
if(req.body.usuario){
usuario= req.body.usuario;
}
let ipUsuario=req.headers['user-agent'] ||null;
let mensaje = "ACCION DEL SERVIDOR--"+serverAction+"-- Para el usuario: |"+usuario +"|" +" en el Dispositivo: "+ipUsuario;
loggerW.info(mensaje);
}
exports.log = function(req, res, next) {
let usuario = req.usuario;
if(req.body.usuario){
usuario= req.body.usuario;
}
let ipUsuario=req.headers['user-agent'] ||null;
//console.log(ipUsuario+" ip");
;
let mensaje = "El usuario: |"+usuario +"| solicita "+req.originalUrl+" en el Dispositivo: "+ipUsuario;
loggerW.info(mensaje);
//loggerW.error(mensaje);
next();
}