Files
PortalApi/routes/loginAdmin.js
T
2021-01-11 23:23:32 -06:00

84 lines
2.8 KiB
JavaScript

const connection = require('../conf/connection.js');
const express = require('express');
const bcrypt = require('bcrypt');
const jtw = require('jsonwebtoken');
var app = express()
function query(consulta) {
return new Promise(function(resolve, reject) {
connection.query(`${consulta}`, (error, results, files) => {
if (error) reject(error);
resolve(results);
});
})
}
function depurado(cadena) {
if (cadena != null) {
cadena = cadena.replace(/'/g, "''");
cadena = cadena.replace(/;/g, "m");
return cadena;
} else
return null;
}
app.post('/loginAdmin', async(req, res) => {
if(typeof req.body.usuario === 'indefined' || typeof req.body.password === 'undefined'){
res.status(400).json({ error: false, msj: "Falta usuario o contraseña como parametros" });
return;
}
console.log(req.body);
try {
let data = req.body;
let usuario = depurado(data.usuario);
let cad = `select * from Admin where usuario='${usuario}'`;
let respuesta = query(cad);
let pass = data.password;
let n_pasword = await bcrypt.hash(pass, 10);
console.log(n_pasword);
respuesta.then(async response => {
console.log(response, response.length);
if (response.length == 0) {
res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" });
return;
} else {
let ban = bcrypt.compareSync(data.password, response[0].password);
if (ban == true) {
const usuario = {
idAdmin : response[0].idAdmin,
user: response[0].nombre,
}
jtw.sign({user: usuario}, 'key', (err, token)=>{
if(err){
res.status(400).json({ error: false, msj: "No se pudo auntentificar" });
return;
}
res.status(200).json({ error: false, msj: "bienvenido", token, entro: true });
return;
})
} else {
res.status(400).json({ error: false, msj: "Usuario o contraseña invalidos" });
return;
}
}
}).catch(err => {
res.status(400).json({ error: true, msj: err });
return;
})
} catch (err) {
console.log("error al autentificar: ", err);
res.status(400).json({ error: true, msj: err });
return;
}
});
module.exports = app