This commit is contained in:
alfredojl
2020-08-17 11:35:15 -05:00
parent 1ae438a299
commit 2b232f2c03
10 changed files with 183 additions and 85 deletions
+9 -9
View File
@@ -4,12 +4,12 @@ const sequelize = require("./sequelize.conf");
const colors = require("colors");
sequelize
.authenticate()
.then(() => {
console.log("Conexión establecida con éxito.".green);
process.exit();
})
.catch(err => {
console.error("No se ha podido establacer conexión con la base de datos:".red, err);
process.exit();
});
.authenticate()
.then(() => {
console.log("Conexion establecida con exito.".green);
process.exit();
})
.catch(err => {
console.error("No se ha podido establacer conexion con la base de datos:".red, err);
process.exit();
});
+49 -10
View File
@@ -1,15 +1,54 @@
// const post = async () => {
// return {
// message: 'Mensaje del post'
// }
// }
// module.exports = post;
const Admin = require("../../models/tablas/Admin");
const bcrypt = require("bcrypt");
const jwt = require("jsonwebtoken");
// module.exports = const equis;
const post = async(req, res) => {
const body = req.body;
const user = await Admin.findOne({
where: {
name: body.name,
},
});
if (user == null) {
console.log("not found!");
return res.status(500).json({
err: {
message: `No se pudo encontrar «${body.name}»`
}
})
}
if (!bcrypt.compareSync(body.password, user.password)) {
console.log('Wrong password');
return res.json({
err: {
message: 'Wrong password'
}
})
}
let token = jwt.sign({
user
}, process.env.TOKEN_SEED, { expiresIn: process.env.TOKEN_EXP });
if (typeof localStorage === "undefined" || localStorage === null) {
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage('./scratch');
}
localStorage.setItem('token', token);
res.json({
user,
token
})
}
module.exports = post;
+28
View File
@@ -0,0 +1,28 @@
const jwt = require('jsonwebtoken');
const verifyToken = (req, res, next) => {
if (typeof localStorage === "undefined" || localStorage === null) {
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage('./scratch');
}
let localToken = localStorage.getItem('token');
console.log(localToken);
jwt.verify(localToken, process.env.TOKEN_SEED, (err, decoded) => {
if (err) {
return res.status(401).json({
err: {
message: 'Invalid token.'
}
})
}
req.user = decoded.user;
next();
})
}
module.exports = verifyToken;
+40 -19
View File
@@ -7,35 +7,56 @@ const admin = require("./tablas/Admin");
require("../config/config");
async function remove() {
console.log(logSymbols.info, "Paso 1 : Borrando base de datos \n".blue.bold);
console.log(logSymbols.info, "Paso 1 : Borrando base de datos \n".blue.bold);
await admin.drop();
console.log(logSymbols.success, "admin");
await admin.drop();
console.log(logSymbols.success, "admin");
}
async function install() {
console.log(
logSymbols.info,
"Paso 2 : Instalando base de datos \n".blue.bold
);
console.log(
logSymbols.info,
"Paso 2 : Instalando base de datos \n".blue.bold
);
await admin.sync();
console.log(logSymbols.success, "admin");
await admin.sync();
console.log(logSymbols.success, "admin");
//crear clave foranea de una tabla a otra, ejemplo
// responsable.hasMany(programa, {
// foreignKey: "idResponsable",
// });
};
async function createFirstUsers() {
console.log(
logSymbols.info,
"Paso 3 : Creating first users in database...\n".blue.bold
);
await admin.create({
name: 'alima',
password: bcrypt.hashSync('contraseña', 10),
isAdmin: true
});
await admin.create({
name: 'alfredojl',
password: bcrypt.hashSync('contraseña', 10),
isAdmin: false
});
//crear clave foranea de una tabla a otra, ejemplo
// responsable.hasMany(programa, {
// foreignKey: "idResponsable",
// });
}
async function exec() {
await remove();
await install();
await remove();
await install();
await createFirstUsers();
console.log(logSymbols.success, "Éxito al instalar \n".underline.bold.green);
process.exit();
console.log(logSymbols.success, "Éxito al instalar \n".underline.bold.green);
process.exit();
}
exec();
exec();
+18 -17
View File
@@ -2,27 +2,28 @@ const Sequelize = require("sequelize");
const sequelize = require("../../config/sequelize.conf");
class Admin extends Sequelize.Model {}
Admin.init(
{
Admin.init({
idAdmin: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
nombre: {
type: Sequelize.STRING(50),
allowNull: false,
name: {
type: Sequelize.STRING(50),
allowNull: false,
},
password: {
type: Sequelize.STRING(100),
allowNull: false,
type: Sequelize.STRING(100),
allowNull: false,
},
},
{
isAdmin: {
type: Sequelize.BOOLEAN,
allowNull: false
}
}, {
sequelize,
tableName: "admin",
}
);
tableName: "users",
});
module.exports = Admin;
module.exports = Admin;
+6 -26
View File
@@ -1,38 +1,18 @@
let express = require("express");
let app = express();
let verifyToken = require('../middlewares/authentication');
const route = '/login'
//logica del login, ejemplo
let post = require('../controller/login/post')
let post = require('../controller/login/post');
const Admin = require("../models/tablas/Admin");
//let get = require('../controller/login/get')
app.post(route, (req, res) => {
console.log(req.query)
console.log(req.body)
return post()
.then(data => {
res.status(200).json(data)
})
.catch(err => {
console.log(err)
res.status(400).json({
err: err.message
})
})
})
app.post(route, async(req, res) => {
return post(req, res);
// app.get(route, (req, res) => {
// return get()
// .then(data => {
// res.status(200).json(data)
// })
// .catch(err => {
// res.status(400).json({
// err: err.message
// })
// })
// })
});
module.exports = app