Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
PASSPORT Passport es una biblioteca de autenticación para Node.js que simplifica el proceso de autenticación de usuarios en aplicaciones web. Proporciona una forma flexible y modular de gestionar diferentes estrategias de autenticación, como inicio de sesión local, inicio de sesión social (usando proveedores como Facebook, Google, Twitter, etc.) y autenticación de terceros. Empresas y proyectos en todo el mundo utilizan Passport debido a su popularidad y facilidad de uso. Algunas grandes compañías y aplicaciones que utilizan Passport incluyen Twitter, Netflix, Trello y LinkedIn. Para implementar Passport en Node.js, debes seguir estos pasos: Paso 1: Instalación Primero, debes instalar las dependencias necesarias: `passport`, `passport-facebook`, `passport- google-oauth20` y `express` (u otro framework web). ```bash npm install passport passport-facebook passport-google-oauth20 express ``` Paso 2: Configuración Luego, configura Passport y las estrategias de autenticación que desees utilizar. En este ejemplo, implementaremos las estrategias de Facebook y Google. ```javascript const express = require('express'); const passport = require('passport'); const FacebookStrategy = require('passport-facebook').Strategy; const GoogleStrategy = require('passport-google-oauth20').Strategy; const app = express(); // Configuración de Passport passport.use(new FacebookStrategy({ clientID: 'TU_APP_ID_DE_FACEBOOK', clientSecret: 'TU_APP_SECRET_DE_FACEBOOK', callbackURL: '/auth/facebook/callback' }, (accessToken, refreshToken, profile, done) => { // Aquí puedes guardar los datos del usuario en tu base de datos o realizar otras acciones return done(null, profile); })); passport.use(new GoogleStrategy({ clientID: 'TU_CLIENT_ID_DE_GOOGLE', clientSecret: 'TU_CLIENT_SECRET_DE_GOOGLE', callbackURL: '/auth/google/callback' }, (accessToken, refreshToken, profile, done) => { // Aquí puedes guardar los datos del usuario en tu base de datos o realizar otras acciones return done(null, profile); })); // Serialización y deserialización de usuarios (opcional) passport.serializeUser((user, done) => { done(null, user); }); passport.deserializeUser((obj, done) => { done(null, obj); }); app.use(passport.initialize()); app.use(passport.session()); ``` Paso 3: Rutas de autenticación Crea las rutas de autenticación para iniciar sesión con Facebook y Google. ```javascript // Ruta de inicio de sesión con Facebook app.get('/auth/facebook', passport.authenticate('facebook')); // Ruta de callback para Facebook app.get('/auth/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/' }), (req, res) => { res.redirect('/perfil'); }); // Ruta de inicio de sesión con Google app.get('/auth/google', passport.authenticate('google', { scope: ['profile'] })); // Ruta de callback para Google app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/' }), (req, res) => { res.redirect('/perfil'); }); ``` Paso 4: Manejo de sesión y protección de rutas Si deseas proteger rutas y asegurarte de que los usuarios estén autenticados antes de acceder a ciertas páginas, puedes usar `req.isAuthenticated()` de Passport. ```javascript app.get('/perfil', (req, res) => { if (req.isAuthenticated()) { res.send('Bienvenido a tu perfil, ' + req.user.displayName); } else { res.redirect('/'); } }); // Ruta para cerrar sesión app.get('/logout', (req, res) => { req.logout(); res.redirect('/'); }); ``` Necesitarás configurar las credenciales y URLs adecuadas para tu aplicación en los sitios de desarrolladores de Facebook y Google.
Compartir