logins
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
const Usuario = require('../../db/tablas/Usuario');
|
||||
const TipoUsuario = require('../../db/tablas/TipoUsuario');
|
||||
const validar = require('../../helper/validar');
|
||||
const { crearToken } = require('../../middleware/autentificacion');
|
||||
const { comparar } = require('../../helper/encriptar');
|
||||
|
||||
const login = async (body) => {
|
||||
const usuario = validar.validacionBasicaStr(
|
||||
body.usuario,
|
||||
'usuario',
|
||||
true,
|
||||
30
|
||||
);
|
||||
const password = validar.validarAlfanumerico(
|
||||
body.password,
|
||||
'contraseña',
|
||||
false,
|
||||
30
|
||||
);
|
||||
|
||||
return Usuario.findOne({
|
||||
where: { usuario },
|
||||
include: [{ model: TipoUsuario }],
|
||||
}).then((res) => {
|
||||
if (!res) throw new Error('No existe este usuario.');
|
||||
if (res.idTipoUsuario !== 1) throw new Error('Este usuario no es de tipo admin.');
|
||||
if (comparar(password, res.password)) {
|
||||
delete res.dataValues.password;
|
||||
return {
|
||||
Usuario: res,
|
||||
token: crearToken(res.idUsuario),
|
||||
};
|
||||
}
|
||||
throw new Error('La contraseña es incorrecta');
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = login;
|
||||
Reference in New Issue
Block a user