Skip to content

Commit f680f78

Browse files
committed
Usuario y token listo
1 parent c550f5d commit f680f78

File tree

10 files changed

+474
-10
lines changed

10 files changed

+474
-10
lines changed

.gitignore

+45-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
11
node_modules/
22
.idea/
3-
.idea
3+
.idea
4+
5+
# See http://help.github.com/ignore-files/ for more about ignoring files.
6+
7+
# compiled output
8+
/dist
9+
/dist-server
10+
/tmp
11+
/out-tsc
12+
13+
# dependencies
14+
/node_modules
15+
16+
# IDEs and editors
17+
/.idea
18+
.project
19+
.classpath
20+
.c9/
21+
*.launch
22+
.settings/
23+
*.sublime-workspace
24+
25+
# IDE - VSCode
26+
.vscode/*
27+
!.vscode/settings.json
28+
!.vscode/tasks.json
29+
!.vscode/launch.json
30+
!.vscode/extensions.json
31+
32+
# misc
33+
/.sass-cache
34+
/connect.lock
35+
/coverage
36+
/libpeerconnection.log
37+
npm-debug.log
38+
testem.log
39+
/typings
40+
41+
# e2e
42+
/e2e/*.js
43+
/e2e/*.map
44+
45+
# System Files
46+
.DS_Store
47+
Thumbs.db

app.js

+18-8
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,37 @@
11
// Requires
22
var express = require('express');
33
var mongoose = require('mongoose');
4+
var bodyParser = require('body-parser');
45

56

67
// Inicializar variables
78
var app = express();
89

10+
11+
// Body parser //
12+
// parse application/x-www-form-urlencoded
13+
app.use(bodyParser.urlencoded({ extended: false }));
14+
// parse application/json
15+
app.use(bodyParser.json());
16+
17+
18+
// Importar rutas
19+
var appRoutes = require('./routes/app');
20+
var usuarioRoutes = require('./routes/usuario');
21+
var loginRoutes = require('./routes/login');
22+
923
// Coneccion a la base de datos
1024
mongoose.connection.openUri('mongodb://localhost:27017/hospitalDB',(err,res)=>{
1125
if (err) throw err;
1226
console.log('Base de datos: \x1b[32m%s\x1b[0m',' online');
1327
});
1428

1529

16-
17-
1830
// Rutas
19-
app.get('/',(req,res,next)=>{
20-
res.status(200).json({
21-
ok: true,
22-
mensaje: 'Peticion realizada correctamente :)'
23-
})
24-
});
31+
app.use('/usuario', usuarioRoutes);
32+
app.use('/login', loginRoutes);
33+
app.use('/', appRoutes);
34+
2535

2636

2737
// Escuchar peticiones

config/config.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports.SEED = 'este-es-un-seed-dificil';

middlewares/autenticacion.js

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var jwt = require('jsonwebtoken');
2+
var SEED = require('../config/config').SEED;
3+
4+
5+
//===========================================
6+
// Verificar token
7+
//===========================================
8+
9+
exports.verificaToken = function (req, res, next) {
10+
11+
var token = req.query.token;
12+
jwt.verify(token,SEED,(err,decoded)=>{
13+
if (err) {
14+
return res.status(401).json({
15+
ok: false,
16+
mensaje: 'Token incorrecto',
17+
errors:err
18+
})
19+
}
20+
req.usuario = decoded.usuario;
21+
22+
next();
23+
})
24+
};

models/usuario.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var mongoose = require('mongoose');
2+
var uniqueValidator = require('mongoose-unique-validator');
3+
4+
var Schema = mongoose.Schema;
5+
6+
var rolesValidos = {
7+
values: ['ADMIN_ROLE', 'USER_ROLE'],
8+
message: '{VALUE} no es un rol permitido'
9+
};
10+
11+
var usuarioSchema = new Schema({
12+
nombre: { type:String, required: [true, 'El nombre es requerido']},
13+
email: { type:String, unique:true, required: [true, 'El correo es requerido']},
14+
password: { type:String, required: [true, 'La contraseña es requerida']},
15+
img: { type:String, required: false},
16+
role: { type:String, required: true, default: 'USER_ROLE', enum:rolesValidos}
17+
});
18+
usuarioSchema.plugin(uniqueValidator,{message:'{PATH} debe ser único'});
19+
20+
module.exports = mongoose.model('Usuario',usuarioSchema);

package-lock.json

+123
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
"author": "Lucas Suarez",
1111
"license": "ISC",
1212
"dependencies": {
13+
"bcryptjs": "^2.4.3",
14+
"body-parser": "^1.18.2",
1315
"express": "^4.16.2",
14-
"mongoose": "^5.0.9"
16+
"jsonwebtoken": "^8.2.0",
17+
"mongoose": "^5.0.9",
18+
"mongoose-unique-validator": "^2.0.0"
1519
},
1620
"devDependencies": {
1721
"nodemon": "^1.17.1"

routes/app.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var express = require('express');
2+
var app = express();
3+
4+
5+
app.get('/',(req,res,next)=>{
6+
res.status(200).json({
7+
ok: true,
8+
mensaje: 'Peticion realizada correctamente :)'
9+
})
10+
});
11+
12+
module.exports = app;

0 commit comments

Comments
 (0)