Autenticación con Facebook
Clase 35 de 39 • Curso de Autenticación con Passport.js 2019
Contenido del curso
Conocer qué son los JSON Web Tokens
Entender cómo funcionan las cookies
Implementar autenticación en Express usando Passport.js
- 12

Arquitectura del proyecto Platzi Video
05:10 min - 13

Agregando la colección de usuarios
06:20 min - 14

Agregando la colección de películas de usuario
11:23 min - 15

Implementando el POST y DELETE de las películas de usuario
05:54 min - 16

Cómo conectarnos a la base de datos
00:50 min - 17

Configuración de Passport.js
08:29 min - 18

Implementación de BasicStrategy con Passport.js
05:31 min - 19

Implementación de Strategy y ExtractJwt con Passport.js
05:02 min - 20

Implementación de nuestro Sign-in
12:28 min - 21

Implementación de nuestro Sign-up
05:09 min - 22

Protegiendo nuestras rutas con Passport.js
04:47 min - 23

Middleware para el manejo de scopes
09:48 min - 24

Configuración del server render
03:04 min - 25

Comunicación máquina a máquina
09:24 min - 26

Implementando recordar sesión
01:19 min - 27

Implementación de las rutas de las películas de usuario
09:28 min
Entender qué es OAuth 2.0 y OpenID Connect
Implementar autenticación con redes sociales
- 29

Cómo crear un proyecto en Google API para hacer autenticación con 0Auth 2.0
00:42 min - 30

Implementando 0Auth2.0 con Google
11:43 min - 31

Implementando Sign Provider en nuestra API
07:10 min - 32

Autenticación con Google usando OpenID Connect
01:38 min - 33

Cómo crear una cuenta de desarrollador con Twitter
01:02 min - 34

Autenticación con Twitter
10:50 min - 35

Autenticación con Facebook
Viendo ahora
Asegurar tu aplicación de Express
A continuación veremos cómo podemos implementar la autenticación haciendo uso de la estrategia para Facebook. Es importante primero tener una cuenta de Facebook para desarrolladores: https://developers.facebook.com/ y crear una app/project como lo hemos hecho anteriormente para Google y Twitter. Podemos seguir las instrucciones aquí: https://developers.facebook.com/docs/apps, para obtener nuestros FACEBOOK_CLIENT_ID y FACEBOOK_CLIENT_SECRET respectivamente.
Lo primero es instalar nuestras dependencias
npm install passport-facebook
Luego creamos una nueva estrategia llamada facebook dentro de utils/auth/strategies/facebook.js:
const passport = require('passport'); const { Strategy: FacebookStrategy } = require('passport-facebook'); const { config } = require("../../../config/index"); passport.use(new FacebookStrategy({ clientID: config.facebookClientId, clientSecret: config.facebookClientSecret, callbackURL: "/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { const { data, status } = await axios({ url: `${config.apiUrl}/api/auth/sign-provider`, method: "post", data: { name: profile.name, email: profile.email, password: profile.id, apiKeyToken: config.apiKeyToken } }); if (!data || status !== 200) { return cb(boom.unauthorized(), false); } return cb(null, data); } ));
Teniendo nuestra estrategia de Facebook ya podemos agregar las dos nuevas rutas de autenticación.
app.get("/auth/facebook", passport.authenticate("facebook"), { scope: ["email", "profile", "openid"] }); app.get( "/auth/facebook/callback", passport.authenticate("facebook", { session: false }), function(req, res, next) { if (!req.user) { next(boom.unauthorized()); } const { token, ...user } = req.user; res.cookie("token", token, { httpOnly: !config.dev, secure: !config.dev }); res.status(200).json(user); } );
Con esto tenemos nuestra implementación de autenticación con Facebook.