Seguro, flexible y modular
Passportjs nos ayuda a autentificar a nuestros usuarios, clientes o visitantes, de una forma sencilla, ágil y robusta.
Passportjs está diseñada para trabajar con base en express.
Para comenzar y suponiendo que nuestro proyecto está preconfigurado vamos a instalarlo.
Vamos a necesitar:
//================================= // * passport // * passport local // * passport local moongose // * express-session //=================================
- passport *es la librería principal.
- passport local *es la más simple, solamente para declarar usuario y password.
- passport local moongose *es el driver para nuestra base de datos en mongoDB. 4.express-session *nos ayudará a configurar las sesiones una vez logueado el usuario.
Comenzamos instalando lo necesario
npm install passport passport-local passport-local-mongoose express-session --save
Una vez instalados los paquetes necesarios vamos a crear nuestro modelo de usuario.
user.js
const mongoose = require('mongoose'), passportLocalMongoose = require('passport-local-mongoose'); const UserSchema = new mongoose.Schema({ username: String, password: String }); // añadimos todas las características de passport a nuestro schema UserSchema.plugin(passportLocalMongoose); module.exports = mongoose.model('User', UserSchema);
Ahora vamos a nuestro archivo principal js, en mi caso app.js y configuramos passport para funcionar con express y mongodb.
app.js
//declaramos nuestra variables const passport = require('passport'), LocalStrategy = require('passport-local'); //importamos nuestro modelo Usuario User = require('./models/users'), //configuramos passport app.use(require('express-session')({ secret: 'Una frase secreta para encriptar', resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); app.use(function(req, res, next){ res.locals.currentUser = req.user; next(); }); //le pasamos a nuestro express el usuario de manera global
Ya tenemos nuestro servidor a punto para usar passportjs.
Vamos a ello.
app.js
app.post('/login', passport.authenticate('local', { successRedirect: '/bienvenido', failureRedirect: '/login', failureFlash: 'Usuario o contraseña incorrecto' }), (request, response){} ); app.get('/loggout', (req, res) =>{ req.logOut(); res.redirect('/index'); });
Con la función incorporada authenticate() de passportjs, obtendremos el resultado de si el usuario está identificado o no.
Todo esto sucede gracias a passportjs y sus métodos de fácil uso.
Aquí os dejo el link a mi código un poco más complejo pero donde utilizo casi toda la funcionalidad de passportjs codigo
Top comments (0)