84 lines
2.8 KiB
JavaScript
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 |