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)