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

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

0D
17H
45M
22S

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?

o inicia sesi贸n.

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 [email protected] -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 [email protected] -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 鈥渃orregir鈥 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

> [email protected].2.4 install platzi-autenticacion\blog\node_modules\fsevents
> node install


> [email protected].18.6 postinstall platzi-autenticacion\blog\node_modules\nodemon
> node bin/postinstall || exit 0

npm WARN [email protected].0.0 No description
npm WARN [email protected].0.0 No repository field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected].1.1 (node_modules\flatmap-stream):
npm WARN 404 SKIPPING OPTIONAL DEPENDENCY: Not Found: [email protected]://registry.npmjs.org/flatmap-stream/-/flatmap-stream-0.1.1.tgz
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: event[email protected].3.6 (node_modules\event-stream):
npm WARN 404 SKIPPING OPTIONAL DEPENDENCY: Not Found: event[email protected]://registry.npmjs.org/event-stream/-/event-stream-3.3.6.tgz

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

> [email protected]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! [email protected]1.0.0 dev: `nodemon index`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected]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:


> [email protected]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! [email protected]1.0.0 dev: `next -p 3001`
npm ERR! spawn ENOENT
npm ERR! 
npm ERR! Failed at the [email protected]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 [email protected] -D luego npm install

npm install node[email protected] -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 鈥渘pm 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 [email protected]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 鈥渆vent-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 鈥渘pm i鈥