Jesus Abril
Posted on March 16, 2020
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
Posted on March 16, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.