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

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Implementando Authorization Code Grant

18/39
Recursos

El flujo de Authorization Code Grant comienza redireccionando a los usuarios a una pantalla donde pedimos permisos para acceder a su cuenta (en este caso con Spotify) para que, a su vez, la aplicaci贸n nos devuelva un c贸digo de autorizaci贸n. Este c贸digo de autorizaci贸n lo vamos a utilizar para enviar junto con las variables de client_id y client-secret una nueva petici贸n a la API de Spotify. Esta vez, la API nos responde con un token de acceso que podemos utilizar para acceder al contenido que tenemos permitido seg煤n la plataforma de Spotify.

Aportes 8

Preguntas 7

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Paso un link que me sirvi贸 para terminar de cerrar la idea.

OauthDocumentacionAuthorizationCode

Que genial clase
previamente realice aplicaciones con oauth en base a librerias y tu hiciste manualmente parte de lo que las librerias hacen en java usaba Spring security oauth y la verdad es muy engorrosa. yo voy a facebook obtengo el authorization token obtengo los datos del usuario y luego almacenos sus datos en mi base de datos para el registro y le genero el code y token de mi propio servidor ahora lo voy ha hacer manual y segun veo significara mucho pero mucho menos codigo.

驴Qu茅 utilizas al importar los utils en el editor?
Veo que filtras y luego coges el path del archivo directamente sin tener que pensar d贸nde est谩 si no solo sabiendo c贸mo se llama el archivo a importar.

Parece que querystring est谩 deprecado. Esta ser铆a una implementaci贸n con URLSearchParams:

import { URLSearchParams } from 'url';

...

app.get('/login', function (req, res) {
  const state = generateRandomString(16);

  const queryString = new URLSearchParams({ // 0.0
    response_type: 'code',
    client_id: config.spotify.clientId,
    scope: scopesArray.join(' '),
    redirect_uri: config.spotify.redirectUri,
    state,
  }).toString();

  res.cookie('auth_state', state, { httpOnly: true });
  res.redirect(`https://accounts.spotify.com/authorize?${queryString}`);
});

...

Gracias a este video pude implementar el login con facebook!. Hay peque帽os cambios pero funciona bien. Dentro de poco estar茅 haciendo un post explicando los cambios.

Si a alguien le sale 鈥渋llegal Scope鈥, remover 鈥減laylist-read-collaborate鈥 del scopesArray.js y ejecutar de nuevo

En este link hay una explicaci贸n muy buena de lo que son los PKCE y un ejemplo muy claro:

Link