Logo Studenta

PASSPORT

¡Estudia con miles de materiales!

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.

Continuar navegando

Materiales relacionados

324 pag.
Office 365 - Renata Salamanca

User badge image

Desafio PASSEI DIRETO

2 pag.
A3-app - Paulina Sofia Hernandez

User badge image

Desafío México Veintitrés