






















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
breve tutorial para hacer un login
Tipo: Apuntes
1 / 30
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
En oferta
BASE DE DATOS II ING. MÓNICA HERNÁNDEZ
CREAR EL ENTORNO
AGREGAR MÓDULOS AL PROYECTO
ESTRUCTURA DEL PROYECTO
CONFIGURACIÓN DEL SERVIDOR
//modulo express para hacer el servidor const express = require('express'); //Se crea un objeto para guardar lo que retorna la funcion const app = express(); //configuraciones app.set('port', process.env.PORT || 3000 ); //Se empieza el servidor //recibe el puerto y una funcion flecha que envia un mensaje para saber si esta funcionando //correctamente app.listen(app.get('port'), () => { console.log('Servidor funcionando', app.get('port')) });
CREANDO RUTAS PRINCIPALES
//se importa para utilizar el metodo router const express = require('express'); //este obejto router permite guardar las rutas const router = express.Router(); //Definicion de rutas //Directorio raiz "/" //Recibe como parametro el slash como raiz, y una funcion flecha que contiene un request, repuesta, next router.get('/',(req,res,next)=>{ }); //Mostramos formulario para el registro del usuario router.get('/registro',(req,res,next)=>{ }); //Regresamos los datos para registarlos router.post('/registro',(req,res,next)=>{ }); //Mostramos formulario para iniciar sesion router.get('/sesion',(req,res,next)=>{ }); //Regresamos los datos para validar los datos de sesion router.post('/sesion',(req,res,next)=>{ }); //exportamos como un modulo module.exports = router;
const path = require('path'); app.set('views', path.join(__dirname, 'views'));
//Importar rutas app.use('/', require('./routes/index'));
router.get('/',(req,res,next)=>{ res.render('index'); });
VER LAS PETICIONES CON MORGAN
const morgan = require('morgan');
app.use(morgan('dev')); HACER EL FORMULARIO PARA REGISTRO
res.send('Datos recibidos '); }); ENCRIPTAR CONTRASEÑA
const passport = require('passport'); //utilizar el modulo local //passport crear estrategias para hacer la encriptacion const LocalStrategy = require('passport-local').Strategy; //local-registro nombre del metodo, new LocalStrategy recibe 2 parametros el primero en llaves //es un objeto de configuraciones que define el tipo de dato que recibimos y una funcion que regrese algo //mensaje, los guarde, etc. passport.use('local-registro',new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true //para poder recibir en la funcion //el reques es por si se agregan mas datos //done es para indicarle que se regresara una respuesta }, (req,email,password, done) => { }));
CONFIGURACIÓN DE ARCHIVO DATABASE
module.exports = { mongodb: { URI : 'mongodb://localhost:27017/mylogin' } };
const mongoose = require('mongoose'); const { mongodb } = require('./keys'); Primera opción mongoose.connect(mongodb.URI, {}) .then(db => console.log('Base de Datos conectada')) .catch(err => console.error(err)); mongoose.connect(mongodb.URI, {useNewUrlParser: true,useUnifiedTopology: true}) .then(db => console.log('Base de Datos conectada')) .catch(err => console.error(err));
//recibe el texto y aplica el algoritmo varias veces para cifrarlo return bcrypt.hashSync(password, bcrypt.genSaltSync( 10 )); }; //desencriptar o comparar userSchema.methods.comparePassword = function (password) { return bcrypt.compareSync(password, this.password); } module.exports = mongoose.model('usuarios',userSchema);
const passport = require('passport'); //utilizar el modulo local //passport crear estrategias para hacer la encriptacion const LocalStrategy = require('passport-local').Strategy; //permite crear un nuevo usuario con el Schema definido en models/ user const User = require('../models/user'); //Permite que si navega por nuestro sitio no este pidiendo el logro a cada rato passport.serializeUser((user, done) => { done(null, user.id); }) passport.deserializeUser(async (id, done) => { const user = await User.findById(id); done(null, user);
//local-registro nombre del metodo, new LocalStrategy recibe 2 parametros el primero en llaves //es un objeto de configuraciones que define el tipo de dato que recibimos y una funcion que regrese algo //mensaje, los guarde, etc. passport.use('local-registro',new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true //para poder recibir en la funcion //el reques es por si se agregan mas datos //done es para indicarle que se regresara una respuesta }, async (req,email,password, done) => { const user = new User(); user.email = email; user.password = password; await user.save(); done(null, user); }));
const passport = require('passport'); require('./passport/auth-local'); app.use(passport.initialize()); app.use(passport.session());