Bienvenida e introducción

1

Qué aprenderás sobre autenticación con OAuth

2

Stack de seguridad para aplicaciones modernas

3

Autenticación

4

Autorización

JSON Web Tokens

5

JSON Web Tokens

6

Autenticación tradicional vs JWT

7

Configuración inicial de los proyectos

8

Firmando un JWT

9

Verificando nuestro JWT firmado y buenas practicas con JWT

10

Server-Side vs Client-Side sessions

11

Protegiendo nuestros recursos con JWT

12

Habilitando CORS en nuestro servidor

13

Profundizando el concepto de JWKS

OAuth 2.0

14

Cómo elegir el flujo adecuado para OAuth 2.0

15

¿Qué es OAuth 2.0?

16

Conociendo el API de Spotify

17

Creando los clientes de Spotify y servicios iniciales

18

Implementando Authorization Code Grant

19

Usando nuestro access token para obtener nuestros recursos

20

Implementando Implicit Grant

21

Implementando nuestro servicio de autenticación

22

Modificando nuestro Layout

23

Implementando Client Credentials Grant

24

Implementando Resource Owner Password Grant

25

Implementando Authorization Code Grant (PKCE)

Open ID Connect

26

¿Qué es OpenID Connect?

27

Implementando OpenID Connect

Preocupaciones con JWT y OAuth 2.0

28

¿Cuáles son las preocupaciones con JWT?

29

¿Cuáles son las preocupaciones con OAuth 2.0?

Haciendo uso de Auth0

30

¿Qué es Auth0?

31

Auth0 Lock y auth0.js

32

Universal Login

33

Social Login con Auth0

34

Custom Social connection con Spotify

35

Multifactor authentication

36

Authorization Extension en Auth0

Consideraciones para producción

37

Buenas prácticas para el despliegue en producción

38

Uso de diferentes tenants para producción con Auth0

Cierre del curso

39

Cierre del curso

Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Configuración inicial de los proyectos

7/39
Recursos

Aportes 43

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Quedo un poco en el aire como arrancar el proyecto, así me funciono a mi:

1 - Clone del repo: https://github.com/glrodasz/platzi-autenticacion
En el repo estan los dos directorios admin y blog. Para cada directorio cambiar al branch de la clase:
2 - gitcheckout configuracion-inicial-de-los-proyectos
3 - En el directorio blog: npm install nodemon@latest -D luego npm install
4 - En el directorio blog: npm start
5 - En el directorio admin: npm install
6 - En el directorio admin: npm run dev

Si corriste npm install en blog y todo se puso rojo, respira hondo e intenta esto.

npm install nodemon@latest -D

También en admin deberás correr

npm audit fix

Para evitar que un hacker ruso arruine tu proyecto.

Ahora si andamos readys para continuar 😄

todo esta muy bien el profe sabe mucho del tema pero lo que no sabe que es esto es nuevo para mas de uno de nosotros entonces debería ser mas flexible con la explicación.

Hola! Si están haciendo el curso en este momento, les recomiendo que no se clonen el proyecto en el repositorio. Usen el que se colocó en la sección de recursos. Luego sigan lo indicado por uno de nuestros compañeros en el siguiente aporte: https://platzi.com/comentario/678394/. Si les pasa como a mí en el proyecto admin, que daba errores con uno de los paquetes al hacer npm run dev (en mi caso fue fsevents), borren el package-lock.json, node_modules y yarn.lock (https://github.com/paulmillr/chokidar/issues/827), hagan npm install y despues npm run dev.

Llevo 1 día peleando para levantar esto y poder seguir con el curso. Espero le pueda ser de utilidad este conocimiento a alguien!

Link del proyecto actualizado 2022:
https://github.com/luislozad/app-autenticacion

Para el proyecto de blog es necesario actualizar nodemon(npm install --save-dev nodemon ) y posteriormente ejecutar npm install

Compañeros, si están perdidos revisen la ayuda de Diego Andrés Cardenas Caro https://platzi.com/comentario/678394/ - Es la solución perfecta para iniciar.

Platzi: Nunca dejes de aprender (tecnologia deprecated de hace 4+ años) xd

Creo que mi ruta de aprendizaje no incluye nada de programación, por lo que en este clase en particular, me quede en 0.

upss este modulo requiere de esfuerzo adicional

Me estaba regresando muchos errores la consola por las versiones de los paquetes ya muchas están en desuso. Como lo solucioné es de la siguiente manera:

  1. Clone el repositorio
  2. Eliminé el archivo package-lock.json tanto de la carpeta admin como de la de blog.
  3. En la terminal me posicioné en la carpeta admin y ejecuté
npm install
  1. Después de todos los errores y que se instalaran los paquetes, ejecuté el comando para actualizar las versiones automáticamente y “corregir” los problemas.
npm audit fix --force

En el futuro esto puede traer problemas ya que cambia las versiones de las dependencias y puede que algunas partes del código ya no funcionen de la misma manera en versiones más recientes. Pero va a tocar lidiar con estos problemas cuando se presenten revisando la documentación. Pero esperemos que no sea nada grave 🤞🏻
5. Hice el mismo proceso pero en la carpeta de blog
6. Ahora si ejecuté en cada carpeta

npm run dev

Ojalá les sirva.

Hola como estan? estoy teniendo problemas con el proyecto de admin luego de instalar las dependencias.
Compilo la app sin problema al utilizar el comando npm run dev pero cuando voy a la localhost:3001 tengo el siguiente error.

![](

Es importante ejecutar el comando npm install dentro del directorio de su proyecto, para instalar todas las dependencias.

Este curso es bueno para tu CV.

Por si a alguien le genera error con la aplicación blog, me fijé que en el package-lock.json hay una librería que parece no estar respondiendo y por eso solo eliminé ese archivo e hice la instalación.
Creo que no es una buena práctica borrarlo pero era el que no permitía funcionar el proyecto

Compañeros nodemon no esta actualizado, yo removi primero nodemon antes de instalar todo y despues instale la version actual

Hice un git clone del repositorio. Me situé en el branch correspondiente a esta clase.
Para el admin: todo bien.
Para el blog: El npm install me arroja lo siguiente y por lo tanto el npm run dev falla.

platzi-autenticacion\blog> npm install

> fsevents@1.2.4 install platzi-autenticacion\blog\node_modules\fsevents
> node install


> nodemon@1.18.6 postinstall platzi-autenticacion\blog\node_modules\nodemon
> node bin/postinstall || exit 0

npm WARN blog@1.0.0 No description
npm WARN blog@1.0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: flatmap-stream@0.1.1 (node_modules\flatmap-stream):
npm WARN 404 SKIPPING OPTIONAL DEPENDENCY: Not Found: flatmap-stream@https://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.1.tgz
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: event-stream@3.3.6 (node_modules\event-stream):
npm WARN 404 SKIPPING OPTIONAL DEPENDENCY: Not Found: event-stream@https://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz

added 406 packages in 51.172s
platzi-autenticacion\blog> npm run dev

> blog@1.0.0 dev ~\Desktop\PlatziWorkSpace\AutenticacionConOAuth\platzi-autenticacion\blog
> nodemon index

module.js:487
    throw err;
    ^

Error: Cannot find module 'event-stream'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (~\Desktop\PlatziWorkSpace\AutenticacionConOAuth\platzi-autenticacion\blog\node_modules\ps-tree\index.js:4:13)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! blog@1.0.0 dev: `nodemon index`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the blog@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!    ~\AppData\Roaming\npm-cache\_logs\2019-01-07T22_30_22_618Z-debug.log```

Simplemente entran a la carpeta de **admin **y corren:

npm install
npm run dev

En la carpeta de **blog **corren:

npm i nodemon
npm install
npm run dev

Aunque es probable que dentro de **blog **también deban correr

npm audit fix

Junio 24 del 2020

Si al ejecutar en admin:

npm run dev

les aparece el siguiente error:


> admin@1.0.0 dev /home/hectortllo/Documentos/Platzi/Autenticacion/platzi-autenticacion/admin
> next -p 3001

sh: 1: next: not found
npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! admin@1.0.0 dev: `next -p 3001`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the admin@1.0.0 dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm WARN Local package.json exists, but node_modules missing, did you mean to install?

para arreglarlo, ejecuté lo siguiente:

sudo npm install first

Después de eso todo funcionó bien.

estuve usando el repo del profesor para seguir la clase me preocupo mucho que al instalar las dependencias saltara el error : npm ERR! 404 Not Found: [email protected], este paquete segun he leido esta relacionado con algunos hackeos relacionados con cripto monedas

En el repo estan los directorios admin y blog. Para cada directorio cambiar al branch de la clase:
2 - git checkout configuracion-inicial-de-los-proyectos

git checkout configuracion-inicial-de-los-proyectos

3 - En el directorio blog: npm install nodemon@latest -D luego npm install

npm install nodemon@latest -D 

instalar global

npm install -g nodemon
npm install

4 - En el directorio blog: npm start

npm start

5 - En el directorio admin: npm install

npm install

6 - En el directorio admin: npm run dev

npm audit fix

por si te sale error

sudo npm install first

recuerda crear tu archivo .env a nivel de raiz de la carpeta admin y debe tener la siguientes variables:

// SPOTIFY
SPOTIFY_CLIENT_ID=
SPOTIFY_REDIRECT_URI=

// AUTH0
AUTH0_DOMAIN=
AUTH0_CLIENT_ID=
AUTH0_API_AUDIENCE=
AUTH0_REDIRECT_URI=

ejecuta para ver que todo anda corrirendo bien

npm run dev

recuerda que tienes que pasar de una carpeta a otra, es decir a la carpeta admin, api y blog
para ingresar a la carpeta admin:

cd admin

para regresar

cd ..

para ingresar a la carpeta blog:

cd blog

para regresar

cd ..

para ingresar a la carpeta api:

cd api

para regresar

cd ..

Saludos, quería mencionar que actualice el package.json del blog porque no se me instalaba. Y también empleé NVM para manejar versiones más antiguas de node; en concreto estoy usando la v14.18.0 tanto para el blog, como para admin.

Adjunto mis configuraciones (2022):

nvm use v14.18.0
  "dependencies": {
    "body-parser": "^1.20.1",
    "express": "^4.18.2",
    "pug": "^3.0.2"
  },
  "devDependencies": {
    "nodemon": "^2.0.20"
  }

Deberian actualizar si o si este curso sinceramente

Como no se habla de la instalacion del proyecto para que el “npm i” corra en el proyecto del blog, deben actualizar las dependencias porque ya se encuentran deprecadas las versiones del repo, luego si pueden darle npm run dev.

Tenia problemas para levantar las aplicaciones, finalmente lo logre, elimine el archivo package-lock.json para luego ejecutar ```
npm install


npm install nodemon -g

Estoy en el aire no se como comenzar el proyecto , que herramienta utilizar o como avanzar

El implicit flow no es recomemdado ya para SPAs, se recomienda Authentication Code Flow con PKCE:

https://auth0.com/blog/oauth2-implicit-grant-and-spa/

Hola glrodasz tengo un pregunta, desde tu punto de vista que me puedes recomendar cuando tengo un proyecto que los permisos son ad ministrables. Quedo atento.

Estos pasos también sirven para aplicarlos en un proyecto con react native?

Que debemos instalar en Linux, para poder ejecutar los proyectos?

que pasa cuando se cae el API??

Buenas noches,
¿Que es implicit?

Levanté por fuera de Visual Studio Code el admin y el blog, con PowerShell.

un favor podrían zipear todo el proyecto? para no estar bajando 1 x 1

Hola compañeros, estoy obteniendo este error.

npm ERR! path /Users/paredesug/Desktop/auth/package.json
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/Users/paredesug/Desktop/auth/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/paredesug/.npm/_logs/2019-06-25T18_58_16_650Z-debug.log```

deben borrar el packaje json y darle npm i en blog

Recuerden realizar copia del archivo .env.example como . env para que al iniciar el proyecto no salga un error.

A todos los que tengan problemas con los proyectos aconsejo eliminar el package-lock.json **ANTES ** de ejecutar npm install.

Perfecto, no conozco mucho de este tipo de configuraciones pero aquí en los aportes ayudan mucho para que funcione el proyecto.

Pueden iniciar con el manejador de dependencias Yarn.
Directorio blog:

yarn add nodemon@last
yarn
yarn dev

Directorio admin:

yarn
yarn dev

Y listo… Mucha suerte!

Si están viendo esto en 2021 y les tira el error del módulo “event-stream”, la solución está en borrar los package-lock.json, instalar nodemon (en el proyecto como dev dependency o de forma global) y despues volver a instalar todos los paquetes “npm i”