Curso de Autenticación con Passport.js

Clases del Curso de Autenticación con Passport.js

Instruido por:
Guillermo Rodas
Guillermo Rodas
Avanzado
3 horas de contenido
Ver la ruta de aprendizaje
Autenticación de Usuarios de PlatziVideo
Proyecto del curso
Autenticación de Usuarios de PlatziVideo

Añade la capa de autenticación y comunicación con una API de forma segura. Usando Passport.js implementa el sign in y el sign up de la aplicación de PlatziVideo.

Curso de Autenticación con Passport.js

Curso de Autenticación con Passport.js

Progreso del curso:0/39contenidos(0%)

Contenido del Curso
Tutoriales de estudiantes
Preguntas de estudiantes

Progreso del curso:0/39contenidos(0%)

Aprender sobre autenticación y autorización

Material Thumbnail

Lo que aprenderás sobre Passport.js

02:36 min

Material Thumbnail

Stack de seguridad moderno

01:36 min

Material Thumbnail

¿Qué es la autenticación y la autorización ?

02:16 min

Material Thumbnail

Introducción a las sesiones

02:42 min

Conocer qué son los JSON Web Tokens

Material Thumbnail

Anatomía de un JWT

02:41 min

Material Thumbnail

Autenticación tradicional vs JWT

02:10 min

Material Thumbnail

Firmando y Verificando nuestro JWT

08:36 min

Server-side vs Client-side sessions

01:14 min

Buenas prácticas con JWT

02:29 min

Entender cómo funcionan las cookies

Material Thumbnail

¿Qué son las cookies y cómo implementar el manejo de sesión?

07:17 min

Material Thumbnail

Cookies vs Session Storage vs Local Storage

04:47 min

Implementar autenticación en Express usando Passport.js

Material Thumbnail

Arquitectura del proyecto Platzi Video

05:10 min

Material Thumbnail

Agregando la colección de usuarios

06:20 min

Material Thumbnail

Agregando la colección de películas de usuario

11:23 min

Material Thumbnail

Implementando el POST y DELETE de las películas de usuario

05:54 min

Cómo conectarnos a la base de datos

00:50 min

Material Thumbnail

Configuración de Passport.js

08:29 min

Material Thumbnail

Implementación de BasicStrategy con Passport.js

05:31 min

Material Thumbnail

Implementación de Strategy y ExtractJwt con Passport.js

05:02 min

Material Thumbnail

Implementación de nuestro Sign-in

12:28 min

Material Thumbnail

Implementación de nuestro Sign-up

05:09 min

Material Thumbnail

Protegiendo nuestras rutas con Passport.js

04:47 min

Material Thumbnail

Middleware para el manejo de scopes

09:48 min

Material Thumbnail

Configuración del server render

03:04 min

Material Thumbnail

Comunicación máquina a máquina

09:24 min

Implementando recordar sesión

01:19 min

Material Thumbnail

Implementación de las rutas de las películas de usuario

09:28 min

Entender qué es OAuth 2.0 y OpenID Connect

Material Thumbnail

¿Qué es OAuth 2.0 y OpenID Connect?

04:25 min

Implementar autenticación con redes sociales

Cómo crear un proyecto en Google API para hacer autenticación con 0Auth 2.0

00:42 min

Material Thumbnail

Implementando 0Auth2.0 con Google

11:43 min

Material Thumbnail

Implementando Sign Provider en nuestra API

07:10 min

Autenticación con Google usando OpenID Connect

01:38 min

Cómo crear una cuenta de desarrollador con Twitter

01:02 min

Material Thumbnail

Autenticación con Twitter

10:50 min

Autenticación con Facebook

01:35 min

Asegurar tu aplicación de Express

Material Thumbnail

Seguridad con Helmet y npm audit

04:15 min

Automatizar el chequeo de vulnerabilidades con Snyk

00:52 min

Material Thumbnail

Qué es OWASP y buenas prácticas de seguridad

05:48 min

Material Thumbnail

Conclusiones y cierre del curso

00:47 min

nuevosmás votadossin responder
Juan Diego Garin
Juan Diego Garin
Estudiante

Alguien sabría explicarme brevemente cuál es el funcionamiento detrás de colocar (req,res,next) enseguida luego de passport.authenticate ?

app.post("/auth/sign-in", async function(req, res, next) {
  passport.authenticate("basic", function(error, data) {
  ...
 }
  })(req, res, next);//<---- esto aquí
});
1
Diego Andres Valderruten Vargas
Diego Andres Valderruten Vargas
Estudiante

Creando la App en facebook, me encuentro con la dificulta que facebook no me acepta el localhost como dirección de respuesta a la petición, alguien sabe que sebo hacer?

1
MARTIN SERNA DIAZ
MARTIN SERNA DIAZ
Estudiante

nashe?

3
Diego Andres Valderruten Vargas
Diego Andres Valderruten Vargas
Estudiante

Hola, tengo este error al momento de iniciar el servidor:

TypeError: JwtStrategy requires a secret or key
    at new JwtStrategy (***************PLATZI/Cursos/Escuela-de-JavaScript/Curso de Autenticación con Passport.js/platzi-auth-passport/movies-api/node_modules/passport-jwt/lib/strategy.js:45:15)

que podría ser??

este es mi código JWT:

const passport = require('passport');
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const boom = require('@hapi/boom');

const UsersService = require('../../../services/users');
const { config } = require('../../../config/index');

passport.use(
    new JwtStrategy(
        {
        secretOrkey: config.authJwtSecret,
        jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken()
        },
        asyncfunction(tokenPayload, cb) {
            const usersService = new UsersService();

            try {
                const user = await usersService.getUser({ email: tokenPayload.email });

                if (!user) {
                    return cb(boom.unauthorized(), false);
                }

                delete user.password;

                cb(null, {...user, scope: tokenPayload.scope });
            } catch(error) {
                return cb(error)
            };
        }
    )
);

Gracias.

1
Pedro Alexander Diaz Quiroga
Pedro Alexander Diaz Quiroga
Estudiante

Hola. He intentado desplegar Oauth en el proyecto final en Heroku. Sin embargo se queda bloqueado y nunca entra a ejecutar la parte del callback. Localmente todo funciona muy bien. Les ha pasado? He visto en google que es común que suceda esto pero no logro encontrar la solución para mi. Les agradezco me indiquen por favor si lo desplegaron. Gracias

1
Gerson Montenegro
Gerson Montenegro
Estudiante

No debería haber un return junto al next?. Si no se pone el return, la función sigue corriendo y aparecen errores al no existir la data que se está esperando.

1
Gerson Montenegro
Gerson Montenegro
Estudiante

¿En qué momento se conecta el servidor SSR con el servidor movies-api?

…porque iniciamos ambos servidores, pero no veo que se dispare una conexión de uno con el otro. Al intentar el login solo obtengo un Unauthorized.

¿Alguna idea?. Gracias!

1
danielmedina
danielmedina
Estudiante

Buenas Tardes Amigos

presento e siguiente error, alguna idea.

TokenError: client_secret is missing.
    at OAuth2Strategy.parseErrorResponse (/home/daniel/Proyectos/platzi/platzi-auth-passport/ssr-server/node_modules/passport-oauth2/lib/strategy.js:358:12)
    at OAuth2Strategy._createOAuthError (/home/daniel/Proyectos/platzi/platzi-auth-passport/ssr-server/node_modules/passport-oauth2/lib/strategy.js:405:16)
    at /home/daniel/Proyectos/platzi/platzi-auth-passport/ssr-server/node_modules/passport-oauth2/lib/strategy.js:175:45
    at /home/daniel/Proyectos/platzi/platzi-auth-passport/ssr-server/node_modules/oauth/lib/oauth2.js:191:18
    at passBackControl (/home/daniel/Proyectos/platzi/platzi-auth-passport/ssr-server/node_modules/oauth/lib/oauth2.js:132:9)
    at IncomingMessage.<anonymous> (/home/daniel/Proyectos/platzi/platzi-auth-passport/ssr-server/node_modules/oauth/lib/oauth2.js:157:7)
    at IncomingMessage.emit (events.js:388:22)
    at endReadableNT (internal/streams/readable.js:1336:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
2
gasparnd
gasparnd
Estudiante

A mi no se me borran las películas. En consola y postman me sale todo bien, no hay error y me da el mensaje. Pero en Mongo sigue estando.

1
gasparnd
gasparnd
Estudiante

Me da error cuando quiero traer una película especifica, borrarla, editarla o crearla. No es por el usuario, lo intente con el admin y con el publico para traer una peli especifica y me da error.
Solo puedo traer todas las películas

Object schema cannot be a joi schema

Trata de validar el token pero da error, obviamente.

1