Funcion Terminada

This commit is contained in:
2020-08-02 21:46:09 -05:00
parent e03bee983d
commit 4ab64963b3
5 changed files with 498 additions and 50 deletions
+1
View File
@@ -2,5 +2,6 @@ var express = require('express')
var app = express()
app.use(require('./registro'));
app.use(require('./login'));
module.exports = app;
+70 -47
View File
@@ -1,3 +1,15 @@
/**
* * @author Daniel Adrián Ramírez George <daniel.adrian.ramirez.george@gmail.com> <daniel.george@acatlan.unam.mx>
// Para usar esta funcion es necesario cambiar las rutas ce coneccion a la base de datos que tenga tu proyecto
// ademas de tener instalas las dependencias como express y bcrypt, asi como cambiar los campos de consulta a su
// respectiva base de datos
// Para instalar bcrypt: npm install bcrypt
// Para instalar express: npm install express
*/
const connection = require('../conf/connection');
const express = require('express');
const bcrypt = require('bcrypt');
@@ -12,67 +24,78 @@ function query(consulta) {
})
}
//Esta funcion depura las cadenas quitando los caracteres que no sean necesarios o peligrosos en las consultas SQL
//Agrege o quiete los caracteres usados
function depurado(cadena) {
if (cadena != null){
cadena = cadena.replace(/;/g, "");
cadena = cadena.replace(/=/g, "");
cadena = cadena.replace(/:/g, "");
return cadena.replace(/'/g, "''");
}
else
return null;
}
app.post('/loggin', async(req, res) => {
var aux = req.body.usuario;
aux = aux.toLowerCase();
let usuario = req.body.usuario;
var password = req.body.password;
var pass = await bcrypt.hash(password, 10);
console.log(usuario, " ", pass, " ", password);
var text = true;
for (let i = 0; i < aux.length; i++) {
if ((aux[i] < 'a' || aux[i] > 'z') && aux[i] != '_') {
text = false;
break;
let usuario, password, password_consulta, pass, exite, comparar, id;
try{
usuario = depurado(req.body.usuario);
password = depurado(req.body.password);
//Esta condicional se definio para no tener cadenas de entrada mas grandes que el campo a consultar
if(usuario.length > 90 || password.length > 90 ){
res.status(400).json({ err: true, mjs: 'Correo o contraseña invalidos' });
return;
}
pass = await bcrypt.hash(password, 10);
console.log(usuario, " ", pass, " ", password);
}
let caadena = `select * from usuario;`
let resuesta = await query(caadena)
console.log("esta es la respuesta", resuesta);
if (text == false) {
res.status(400).json({ err: true, msj: "Correo o contraseña invalidos" });
false;
catch(error){
console.log(` Ocurrio un errror 1 msj: ${error}`);
res.status(400).json({ err: true, mjs: 'Datos no validos' });
return;
}
let password_consulta;
try {
let select = `select * from usuario where usuario="${usuario}";`;
//Modifique la tabla a consultar del usuario y las campos que regresa
let select = `select * from Admin where usuario='${usuario}';`;
password_consulta = await query(select);
if ( password_consulta.length == 1) {
//modifique el nombre de los campos segun essten definidos en su base de datos
comparar = password_consulta[0].password;
id = password_consulta[0].idUsuario;
}
else{
console.log(`No se encontro el usuario`);
res.status(400).json({ err: true, mjs: 'Correo o contraseña invalidos' });
return;
}
password_consulta = query(select);
} catch (error) {
console.log(` ocurrio un error 2 msj: ${error}`);
res.status(400).json({ error: true, msj: "Error en la consulta en del usuario" });
return;
}
let exite;
let comparar;
let id;
await password_consulta.then(function(v) {
existe = v.length;
console.log(existe);
if (existe == 1) {
comparar = v[0].password
id = v[0].id_usuario;
}
})
if (existe == 0) {
res.status(400).json({ err: true, mjs: 'Correo o contraseña invalidos' });
return;
}
// var pass = await bcrypt.hash(password, 10);
//console.log(pass);
console.log(comparar);
try{
let correcto = bcrypt.compareSync(password, comparar);
if (correcto == true) {
res.status(200).json({ err: false, mjs: `Bienvenido`, id_usuario: id });
return;
} else {
let correcto = bcrypt.compareSync(password, comparar);
if (correcto == true) {
res.status(200).json({ err: false, mjs: `Bienvenido`, id_usuario: id });
return;
} else {
res.status(400).json({ err: true, mjs: 'Correo o contraseña invalidos' });
return;
}
}
catch(error){
res.status(400).json({ err: true, mjs: 'Correo o contraseña invalidos' });
return;
}